일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- WGAN
- CGAN
- cifar100-c
- UnderstandingDeepLearning
- dann paper
- 최린컴퓨터구조
- SSL
- 컴퓨터구조
- CycleGAN
- semi supervised learnin 가정
- CoMatch
- conjugate pseudo label paper
- remixmatch paper
- 백준 알고리즘
- BYOL
- GAN
- Meta Pseudo Labels
- simclrv2
- adamatch paper
- Pix2Pix
- Entropy Minimization
- mme paper
- shrinkmatch paper
- Pseudo Label
- mocov3
- tent paper
- shrinkmatch
- ConMatch
- 딥러닝손실함수
- dcgan
- Today
- Total
목록분류 전체보기 (247)
Hello Computer Vision
모델공부를 하는 도중 생소하지는 않았지만 완전히 이해하기는 힘들어서 정리해보려고 합니다. 뒤쪽에 많은 분들이 헷갈릴만한 부분들에 대해서 최대한 정리해보았습니다. 출처 : 영상자료,블로그자료 우리가 사용하는 일반 convolution을 본다면 다음 이미지와 같다. 이미지의 $D_{F}$는 input값의 h,w를 뜻하고 $D_{k}$는 kernel의 크기를 뜻한다. 만약 (3,64,64)크기의 input이 있고 이를 16깊이의 채널 깊이를 만들고 싶다면 (3, $D_{k}, D_{k}$) 의 커널 16개의 계산을 수행하면 되는 것이다.(그림 참조) 그렇다면 연산량은 어떻게 될까? 연산에 사용되는 커널크기, input값의 채널크기, output값의 이미지크기, 원하는 깊이의 채널크기가 될 것이며 여기서 사용된..
이번에 CycleGAN관련하여 팀원들과 모델을 만들었는데 데이터셋은 각각 다르고 같은 코드를 사용했었다. 내 데이터셋은 이미지의 높이, 너비가 같았고 한 팀원의 데이터셋은 celebA였고 이 데이터셋의 크기는 178 x 218이다. 그리고 코드 내 전처리하는 과정에서 transforms.Resize(256) 코드가 있었고 내 데이터셋에는 적용되었지만 팀원의 데이터셋에는 오류가 났다.(전처리 목적 : (256 x 256)크기로 만들기) 이유를 찾기 위해 일단 document를 찾아보았다. Resize document 만약 input값으로 받은 이미지의 높이, 너비가 같다면은 int값 하나를 그냥 주어도 해당 값으로 잘 변환이 되지만 만약 높이와 너비가 다르면 다르게 공식이 적용되는 것이었다. 이 경우를 c..
일단 공식문서를 살펴보는게 가장 정확하니 한번 살펴보았다. 파이토치 공식문서 핵심이 되는 어구를 한번 찾아보자면 The output is of size H x W, for any input size. The number of output features is equal to the number of input planes. 이라고 할 수 있다. 예시로 살펴보는게 제일 빠르니 한번 보겠다. input = torch.rand(1, 3, 3) maxp = nn.AdaptiveAvgPool2d((2,2)) output = maxp(input) output tensor([[[0.1934, 0.2858], [0.5547, 0.6766]]]) 3x3크기의 input을 넣어주었고 AdaptiveAvgPool에는 (2,..
활성화 함수로 가장 많이 쓰이는 ReLU 함수에서 종종 nn.ReLU(inplace = True)를 볼 수 있다. 파이토치 공식문서에는 정확히 이렇게 적혀있다. inplace (bool) – can optionally do the operation in-place. Default: False 이에 대해 해석해보자면 inplace값을 True로 준다면 인풋 값에 대한 결과값을 따로 저장하는 것이 아니라 그 자리에 있던 데이터 값을 대신하는 것이라고 할 수 있다. 조금 복잡해보일 수 있지만 정리하자면 들어온 input값이 없어지고 output값만 남는다고 할 수 있다. 따라서 기존에 input값을 저장했던 메모리를 따로 할당할 필요가 없으니 약간의 메모리적인 이득을 얻을 수 있다고 하는데 이 부분은 현업에 ..
이번에 SqueezeNet에 대한 모델 코드들을 보는데 풀링을 하는 과정에서 ceil mode = True 이렇게 되어있어 알고 넘어가보려고 한다. 일단 공식 문서에 따르면 정확히 이렇게 나와있다. ceil_mode (bool) – when True, will use ceil instead of floor to compute the output shape 이거에 따라 결과로 나오는 output의 모양이 파라미터 값에 따라 달라지는구나? 라고 생각할 수 있다. ceil --> 이 뜻은 올림을 뜻한다. 따라서 True값을 준다면 올림을 하는 것이고 기본값은 False로 되어있다. 예시를 통해 한번 알아보려고 한다. input = torch.rand(1, 6, 6) tensor([[[0.0656, 0.0923..
이번 방학에 CNN 모델에 대해서 다시 원론적으로 공부를 하는 도중 Dilated convolution 에 대해 맞닥뜨렸다. 한눈에 설명할 수 있는 이미지는 다음과 같다. 이것이 무엇을 나타내는지 한번 알아보자면 현재 kernel의 크기는 3x3의 크기이며, 7x7이미지를 sliding window 하고있는 상황이다. 근데 왜 흝는 과정에서 5x5커널처럼 흝고있느냐? 바로 nn.Conv2d 의 파라미터 중 dilation이란 값이 있는데 이 값이 2이기 때문이다. nn.Conv2d document 살펴보기 기본 값은 1이며 1을 준다는 것은 커널 안 파라미터들(예시에서는 3x3) 사이사이 간격을 주는 것이다. 1을 준다면 그냥 밀집된 kernel이며 2를 준다면 예시와 같이 듬성듬성한 kernel이 되는..
참고 블로그 : father님 블로그 프라이데이님 블로그 zzin33님 블로그 Translation invariance 설명 : 위치가 바뀌어도 무엇을 나타내는지 편차 없이 잘 구분할 수 있다. 분류 문제를 맞이하였다고 가정하고 위의 이미지를 본다면 이미지의 위치가 바뀔 때 결과 값도 바뀌는 것을 확인할 수 있다. 그렇다면 CNN의 기본 원리는 Translation variance(equivariance) 하다고 할 수 있다. 그러면 왜 CNN 이 Translation Invariance 하다고 하는 것일까 1. Max pooling 분류문제에서 주로 사용하는 Max Pooling을 사용하면 kxk 필터라고 하였을 때 이미지 내에서 k x k필터 안에서의 이동은 상관이 없다. 2. Weight shari..
참고 내용 : 공돌이님 블로그 다크프로그래머님 블로그 고유값, 고유벡터란 무엇인가? $\vec{a}$ 하나가 있으며 이 벡터에다 행렬 A를 곱해보자. \begin{bmatrix}b & c\\ d & e \end{bmatrix} 이러한 행렬A가 있다고 했을 때 벡터와 행렬간의 곱셈을 하면 또 다른 벡터 $\vec{a_{1}}$ 이 만들어지게 된다. 그렇다면 행렬 곱을 통해 방향과 크기가 바뀐 벡터가 기존 벡터와 평행일 수 있을까? 이를 수식으로 나타내보자면 $Av = \lambda v$ 이런 수식을 만족시키는 것이다. (벡터가 서로 평행하다는 것은 한 벡터의 상수배를 한 것과 같은 것이다 벡터의 평행 정리) 여기서 만족시키는 벡터 v를 고유벡터라고 하며 $\lambda$ 을 고유값이라고 한다. (A : n..