일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 최린컴퓨터구조
- CoMatch
- Meta Pseudo Labels
- CGAN
- CycleGAN
- cifar100-c
- 컴퓨터구조
- Pseudo Label
- mocov3
- Entropy Minimization
- semi supervised learnin 가정
- ConMatch
- Pix2Pix
- shrinkmatch paper
- simclrv2
- mme paper
- WGAN
- 백준 알고리즘
- shrinkmatch
- GAN
- SSL
- dann paper
- UnderstandingDeepLearning
- tent paper
- BYOL
- 딥러닝손실함수
- dcgan
- adamatch paper
- conjugate pseudo label paper
- remixmatch paper
- Today
- Total
목록딥러닝/파이토치 (33)
Hello Computer Vision
한번도 모델에 추가해본적 없는데 한번 직접 해보려고 한다. import torchvision.models as models import torch.nn as nn import torch model = models.resnet18(pretrained = True) num_features = model.fc.out_features new_fc = nn.Linear(num_features, 10) model.fc = nn.Sequential( model.fc, new_fc ) print(model.fc) Sequential( (0): Linear(in_features=512, out_features=1000, bias=True) (1): Linear(in_features=1000, out_features=10..
cross entropy이 놈은 공부해도 공부해도 계속 알쏭달쏭하다. 그래서 지금 나름 정리했다고 생각했는데 또 나중에 궁금해 할 수도 있긴한데 일단 지금 기준으로 내가 정리한 걸 적어보려고 한다.y = torch.FloatTensor([0, 0, 0, 0, 1, 0, 0, 0, 0, 0])x = torch.Tensor([0.1, 0.03, 0.05, 0.2, 0.9, 0.0, ..
BYOL 논문 설명을 보다 해당 학습 스케쥴러에 대한 내용이 보여 한번 알아보려고 한다. 학습률을 관리하는 기법도 참 많은 거 같은데 이것만 관리해서 과연 얼마나 정확도가 올라갈지 직접 보지는 않아서 모르겠다 해당 공식 문서 https://pytorch.org/docs/stable/generated/torch.optim.lr_scheduler.CosineAnnealingLR.html CosineAnnealingLR — PyTorch 2.0 documentation Shortcuts pytorch.org 우선 식은 다음과 같다. 우선 기본적으로 코사인 함수 주기함수를 따른다. min, max가 들어가있는 기호는 직접 지정해주는 학습률 최대,최소값이다. Tcur : 현재 몇번째 epoch인지 Tmax: 주기..
코드를 공부하는데 argmax의 keepdim = True라는 것을 보았다. 이전부터 보았던 건데 왜 공부안했는지 싶어서 남겨두려고 한다. 일단 직관적으로 유지할 수 있다는 것을 알 수 있다. arr = torch.rand(2, 3, 4) pred = arr.argmax(2, keepdim = False) print(pred) print(pred.shape) tensor([[0, 2, 1], [0, 2, 1]]) torch.Size([2, 3]) 크기가 (2, 3, 4)인 텐서에 argmax를 취해주면 가장 높은 값을 기준으로 주어진 인자에 따라 차원 한개가 사라지는 것을 볼 수 있다. arr = torch.rand(2, 3, 4) pred = arr.argmax(2, keepdim = True) pri..
Contrastive Learning에 대해 공부하면서 두 벡터 간의 유사도에 대해서 Cosine Similarity가 많이 쓰여 이번 기회에 한번 알아보려고 한다. 코사인 유사도란? 벡터와 벡터 간의 유사도를 비교할 때 두 벡터간의 사잇각을 구해 얼마나 유사한지 수치로 나타낸 것. 예를 들어 90도일 경우 두 벡터간의 연관성은 없다고 보며, 방향이 비슷할 수록 유사하다고 본다. 이를 잘 나타내는 이미지는 다음과 같다. 그리고 값에 대해서는 다음과 같은 수식으로 구한다. pytorch에서는 구하는 함수를 제공해준다. import torch import torch.nn as nn vec1 = torch.rand(1, 128) vec2 = torch.rand(1, 128) cos = nn.CosineSimi..
경량화 모델 중 하나인 ShuffleNet의 코드를 살펴보던 중 view, transpose를 사용하는 코드들을 발견하였는데 제대롤 이해해야 나중에 잘 활용할 수 있겠다 생각해 알아보았다. 내가 직접 짜지않고 보고 이해하는 것은 할 수 있었으나 실제로 어떤 기능으로 활용되는지는 잘 알 수 없었다. view 예시 우리가 네트워크를 짜는 도중에 input값을 맞출 때 자주 사용된다. x = torch.rand(2,3,4) print(x) tensor([[[0.1796, 0.9432, 0.8833, 0.7571], [0.9830, 0.5509, 0.6370, 0.2307], [0.9010, 0.7599, 0.1854, 0.5038]], [[0.8308, 0.9059, 0.2282, 0.1945], [0.002..
최근 ViT라든가 CNN논문들을 살펴보면 ReLU 가 아닌 GELU를 사용하는 경우가 많은데 한번 살펴보려고 한다. (논문에서 처음 보았을 때는 오타인줄 알았다..) 일단 파이토치 공식문서에 올라와있는 공식들을 한번 살펴보면 다음과 같다. $GELU(x) = 0.5 * x * ( 1 + Tanh(\sqrt{(2/\pi)} * (x + 0.44715 * x^{3})))$ 상당히 직관적이었던 ReLU와는 달리 조금 복잡한 것을 확인할 수 있다. 적용되는 기울기를 살펴보면 ReLU와 비슷하지만 x가 음수인 부분에서 약간의 기울기가 발생하며 값이 낮아질수록 0으로 수렴함을 알 수 있다. GELU함수는 ReLU, dropout, zoneout 함수들의 특징들을 조합하여 유도되었다고 하는데 ReLU함수가 x부호에 ..
pytorch를 사용하다 보면은 클래스를 정의할 때 nn.Module을 상속받고 다음 코드에 super().__init__() 사용할 때가 많다. 일단 super() 를 쓰는 이유에 대해서는 상위 클래스를 상속받기 위해서는 먼저 초기화를 해줌으로써 이 상위 클래스의 속성을 sub class가 받아오도록 하는 것이다.(sub class : 현재 내가 정의하는 class) nn.Module같은 경우 우리가 많이 쓰는 Linear, Conv2d 같이 nn.Module의 instance들을 sub class내에서 자유롭게 사용할 수 있는 것이다.