일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딥러닝손실함수
- Meta Pseudo Labels
- mme paper
- shrinkmatch paper
- Pseudo Label
- Pix2Pix
- simclrv2
- CycleGAN
- dann paper
- BYOL
- shrinkmatch
- 최린컴퓨터구조
- GAN
- dcgan
- Entropy Minimization
- CoMatch
- remixmatch paper
- conjugate pseudo label paper
- SSL
- 컴퓨터구조
- ConMatch
- adamatch paper
- CGAN
- 백준 알고리즘
- cifar100-c
- mocov3
- tent paper
- WGAN
- UnderstandingDeepLearning
- semi supervised learnin 가정
- Today
- Total
목록분류 전체보기 (247)
Hello Computer Vision
1. 데이터의 개수는 같지만 각각의 해당되는 데이터 라벨은 다르다. file_path = '/content/CIFAR-100-C/labels.npy' data_array = np.load(file_path) print("데이터 형태:", data_array.shape) print("데이터 내용:") cor = np.array(cifar_dataset.targets) == data_array print(np.sum(cor)) 데이터 형태: (50000,) 데이터 내용: 475 2. 제일 놀라운 사실. CIFAR100 C 에는 50,000개의 단순한 노이즈 데이터들이 있는 것이 아닌, 10,000개 묶음으로 severity 가 높아진다. 한마디로 처음 10개의 이미지와, 10000~10010번째 이미지, 2..
corrupted 된 이미지들을 다루다보면은 여러 개의 데이터셋을 다루다보니 코드가 더러워질 수 있다. 이에 대해서 코드의 간편성을 위해서는 데이터셋을 합칠 수 있다. mnist = datasets.MNIST(root = './sample_data', train = True, download =True, transform = transforms.ToTensor()) cifar = datasets.CIFAR10(root = './sample_data', train = True, download = True, transform = transforms.ToTensor()) concat = torch.utils.data.ConcatDataset([cifar, mnist]) print(len(concat)) pr..
이번에 논문에 나온 값들이 어떻게 변하는지 알아보려던 찰나에 아무 생각 없이 * 연산자를 쓰니까 원하던 값들이 안나와서 적어두려고 한다. x = torch.tensor([[0.85, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.07]]) xt = torch.transpose(x, 0, 1) i = torch.eye(10) diag = torch.diag(x) xx = xt * x k = (i + 8*i - 8*xx) k = torch.inverse(k) pseudo = k.matmul(xt) p = torch.mul(k, xt).sum(0) print(xt.shape) print(x.shape) print(i.shape) print(xx.shape) print..
이번에 semi를 공부하는 도중에 self 와 섞인 논문을 발견하여 리뷰해보려고 한다. NIPS에 억셉된 시기는 2020년으로 해당 년도는 SimCLR이 나오고 FixMatch가 나온지 얼마 안된 시점인데 두가지를 결합한 것이 큰 novelty라고 생각했다. https://arxiv.org/pdf/2101.06480.pdf Introductionsemi supervised learning은 적은 수의 라벨에 대해서 문제를 해결할 수 있는 매력적인 방법이고 self supervised 역시 SimCLR 로 시작된 contrastive learning을 활용한 representation learning을 한 후 fine tuning을 하면은 좋은 성능을 냈다고 한다. 따라서 논문은 이 두가지 방법을 활용해..
해당 논문은 기존의 Tent 논문에서 사용한 Cross Entropy에 대하여 왜 성능이 좋은지에 대해 이론적으로 설명하는 논문이다. 완벽하게 이해하기는 어려웠지만 최대한의 이해를 담았고 조금씩 수정해나가려고한다.https://arxiv.org/pdf/2207.09640.pdf Introduction실제 세계에서의 가능한 모든 distribution shift에 대해서 훈련과정에서 준비하는 것은 불가능하기 때문에, Training 때는 source 데이터로 훈련하고 Test 때는 들어온 input에 대해 잘 adapt토록 하는 것이 Test time Adaption이다(Test Time Training이라고 해도 무방할 거 같다. 세팅에서 약간의 차이는 있을 수 있지만 사소한 거 같다). Test 때 들..
논문의 풀 제목은 글 제목에 있고 주로 TENT라고 불린다. 2021 ICLR에서 억셉된 논문이고 milestone 논문 같아 읽어보았고 코드도 함께 살펴보려고 한다 https://arxiv.org/pdf/2006.10726.pdf Introduction Deep neural network는 train, test data들이 same distribution이라는 setting하에 높은 성능을 보여줬다. 그러나 이러한 성능은 두 data의 분포가 다를 경우 하락을 보여주는데 이러한 것을 dataset shift라고 한다(distribution shift라고 이해해도 문제 없을 거 같다). 모델은 unexpected weather, sensor degradation등의 variation한 상황을 맞이할 가능..
딥러닝 훈련을 시키면서 가벼운 텐서로 세팅할 때도 있는데 이럴 때마다 구글을 서칭한다.. 그래서 torch의 가벼운 문법을 정리해보려고 한다. a = torch.tensor(1) b = torch.tensor([1]) c = torch.tensor([[1,2, 3], [3,4,5]]) print(a) print(a.shape) print(b) print(b.shape) print(c) print(c.shape) tensor(1) torch.Size([]) tensor([1]) torch.Size([1]) tensor([[1, 2, 3], [3, 4, 5]]) torch.Size([2, 3]) 이렇게 가벼운 텐서 정도는 torch.tensor를 사용해서 생성할 수 있다. a = torch.arange(1,..
아주 가끔 loss를 찍어보면 nan을 만날 수 있다. 내 경우는 loss 미분에 대해 learning rate를 낮추니 해결되었는데 이유에 대해서 한번 간단한 코드로 실험해보려고 한다. a = torch.exp(torch.tensor(100)) b = torch.tensor(100) print(a) print(torch.log(a)) print(a / a) softmax에 기본적으로 exp가 사용되니 적용해보았다. tensor(inf) tensor(inf) tensor(nan) 결과는 이렇게 나오는데 즉 inf는 너무 높은 값이 나오면 컴퓨터에서 처리하지 못하는 것을 알 수 있다. 음의 방향으로 너무 크다면 -inf라는 결과가 나온다. 세번째에 나온 nan같은 경우 무한대 / 무한대 이런 값을 넣으니 ..