전체 글178 MCMF(min cut max flow) 어떤 그래프가 있고 해당 그래프의 간선에 가중치가 있다고 해봅시다. 이 그래프에 대해 다음 두 문제를 생각해 봅시다. 그래프가 하나 주어집니다. 주어진 그래프에는 $N$개의 정점과 $M$개의 파이프가 있습니다. 각 파이프는 물을 한쪽 방향으로만 흘릴 수 있습니다. 각 파이프의 흐를 수 있는 양은 다릅니다. 시작 정점과 끝 정점이 주어졌을 때, 시작 정점에서 끝 정점으로 최대한 많은 양의 물을 보내고자 합니다. 얼마나 보낼 수 있습니까? 그래프가 하나 주어집니다. 주어진 그래프에는 $N$개의 정점과 $M$개의 간선이 있습니다. 각 간선은 한쪽 방향으로만 지날 수 있습니다. 각 간선에는 해당 간선을 끊는 데 드는 비용이 있고 이 비용은 다릅니다. 시작 정점과 끝 정점이 주어졌을 때, 최소한의 비용으로 간선.. 2024. 5. 22. [논문 구현] ImageNet Classification with Deep Convolutional Neural Networks 드디어 모든 빌드업이 끝났습니다. 논문 구현을 위해 컴퓨터를 사고(https://codestudycafe.tistory.com/29) GPU를 통해 학습하는 방법도 배웠습니다(https://codestudycafe.tistory.com/34). 이제 이 논문을 구현해 봅시다. 이 페이지의 목적은 해당 논문에 있는 모델을 구현하는 것입니다. 실제로 성능이 잘 나오면 좋겠지만 그것이 목적은 아니라는 거죠. 그러니 이전에 사용한 MNIST(https://codestudycafe.tistory.com/31)데이터를 그대로 사용해 봅시다. 전처리는 이 전 페이지를 그대로 따라 했다고 하고 바로 모델 구현으로 가봅시다. 하나의 이미지에서 두개의 CNN이 나옵니다. 그리고 각각의 CNN에 대해 MaxPool과 loc.. 2024. 5. 22. 1 - MNIST GPU 사용 이전 환경 세팅에서 저희는 GPU를 사용하기 위한 환경을 만들어 두었습니다. torch를 불러와 사용 가능한 GPU를 확인합니다. 역시 또 신기한 에러가 발생하네요. 윈도우 두어번 날려먹고 이 글 쓰다가 또 날려먹고 해서 저도 어떤 과정으로 되었는지 잘 기억이 안나네요. 윈도우 11은 또 tensorflow가 지원안한다는 이야기도 있고 해서 wsl2 ubuntu 20.04를 이용해서 새로 설치했습니다. 이 과정은 추후에 구체적으로 정리해서 쓰겠지만 간략히 말하자면1. 윈도우 안에 우분투 환경을 만든다2. 그 안에 우분투 버전 cuda랑 cuDNN, conda 등을 설치한다.3. vscode에서 wsl 확장 프로그램으로 해당 환경 안으로 들어간다.4. 그 안에서 열심히 최신 tensorflow를 사용한다... 2024. 5. 21. 8155 - Postering step 1더보기더보기가로 폭이 얼마든 상관 없습니다. 전부 1로 생각합니다.만약 모든 빌딩의 높이가 다르다면 답은 $N$입니다. 결국 높이가 같은 것들을 한번에 처리하는 것이 중요합니다.step 2더보기더보기만약 어떤 두 건물의 높이가 같고 그 사이에 있는 모든 건물이 이 건물의 높이보다 크다면 두 건물은 하나의 포스터로 처리할 수 있습니다. 이 과정은 스택을 이용해서 처리할 수 있습니다. 지금 보는 건물이 현재 스택의 top보다 크면 넣고 작으면 스택을 pop해줍니다. 만약 스택의 top과 지금 건물의 높이가 같다면 이 두 건물 사이 모든 건물이 두 건물보다 높다는 뜻입니다. 이러한 건물의 개수를 세고 $N$에서 빼주면 됩니다.코드더보기더보기#include #include #include #inclu.. 2024. 5. 20. 1 - MNIST 모델 학습 자, 이제 본격적으로 모델을 학습해 봅시다. Conv2D로 CNN을 돌려서 그림의 모양을 학습해 주고 Flatter으로 쭉 펴 준 다음 Dense로 10개의 출력을 가진 모델을 만들 것입니다. ? 난리났습니다. 우선 에러 코드를 봅시다. 여기 보면 이런 내용이 있습니다.OMP: Error #15: Initializing libiomp5, but found libiomp5md.dll already initialized. 이는 라이브러리 끼리 충돌을 일으켜서 생기는 문제입니다. 커널을 재시작한 다음 import osos.environ['KMP_DUPLICATE_LIB_OK']='True' 를 제일 먼저 실행해 줍니다. 이렇게 쭉 진행하면 에러가 나지 않습니다. 이어서 진행해 봅시다. model이 어떤 식.. 2024. 5. 19. 1 - MNIST 데이터 가공 MNIST 정도면 다른 곳에도 많겠지만 MNIST를 학습하는 과정을 적어보겠습니다.MNIST는 손으로 쓴 숫자를 입력하면 어떤 숫자인지 맞춰주는 것입니다.vscode를 이용해서 진행할 것입니다. 데이터 가져오기tensorflow의 keras안에 mnist 데이터가 있습니다. 해당 데이터를 가져옵니다. 이 데이터는 정말 이쁘게 생겼습니다. train데이터와 test데이터가 이미 나누어져 있거든요. 데이터를 받고 크기를 출력해서 잘 받아왔는지 확인해 봅시다. 28*28 크기 이미지 60000개를 받아옵니다. matplotlib.pyplot를 이용해 이미지를 출력할 수 있습니다. pip install matplotlib로 설치하고 다음 코드를 입력합니다.plt.figure로 캔버스를 준비하고(근데 아마 이거 .. 2024. 5. 18. 이전 1 ··· 22 23 24 25 26 27 28 ··· 30 다음