일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- UnderstandingDeepLearning
- Entropy Minimization
- CycleGAN
- 최린컴퓨터구조
- CoMatch
- dann paper
- SSL
- dcgan
- semi supervised learnin 가정
- Pix2Pix
- conjugate pseudo label paper
- simclrv2
- mocov3
- WGAN
- 백준 알고리즘
- shrinkmatch paper
- tent paper
- adamatch paper
- remixmatch paper
- shrinkmatch
- Pseudo Label
- ConMatch
- mme paper
- 컴퓨터구조
- CGAN
- 딥러닝손실함수
- BYOL
- cifar100-c
- GAN
- Today
- Total
목록딥러닝 (76)
Hello Computer Vision
github 오픈된 코드들을 보면은 logging이란 모듈이 상당히 많이 쓰이는 걸 알 수 있다. 이것에 대해 알아보자면 print대신 사용할 수 있으며 에러와 관련하여 다양한 기능들이 있다. 우선 기본적인 이해가 있다하고 내가 본 코드에서는 logger = logging.getLogger(__name__) 이렇게 선언하고 logging. ~~ 이렇게 선언하는게 아니라 logger로 계속 선언되었다. 이 부분은 설명보다는 결과로 비교하는게 제일 빠를 거 같다. ### test.py 파일에 적혀있는 코드 def run_module(): logger = logging.getLogger(__name__) logger.info('test파일임다') test.py 파일에는 위와같은 함수에 logger를 따로 선언..
파이썬 코드들을 보면은 많은 코드들에서 if __name__ == '__main__': 이라는 것을 발견할 수 있다. 물론 많은 분들이 이에 대해 작성해놓았지만 안잊어버리기 위해 적어놓으려고 한다. 우선 __name__ 은 파이썬에 내장되어 있는 변수라고 할 수 있다. 해당 변수는 만약 파일이 interpreter통해 수행된다면(해당 파일이 직접적으로 수행된다면) __main__ 이라는 변수가 되는 거고 만약 다른 파일로부터 import 되서 수행된다면 해당 파일의 이름으로 변수가 저장된다. 예시를 통해 알아보는 것이 제일 빠르다. def print_test(): if __name__ == '__main__': print('interpreter 통해 직접 출력') else: print('해당 파일 imp..
이번에 FixMatch관련하여 코드를 뜯어보던 중 배울 점도 있고 기록해야겠다는 생각을 했다. 1. torchvision dataset 을 상속받는 class를 생성할 때 들어가는 파라미터들을 줄 수 있다. 사실 너무나도 당연한 것일 수 있지만 그동안 코드를 뜯어보지 않고 기계적으로 수행하다보니 몰랐던 거 같다. class CIFAR10SSL(datasets.CIFAR10): def __init__(self, root, indexs, train=True, transform=None, target_transform=None, download=False): super().__init__(root, train=train, transform=transform, target_transform=target_tran..
이번에 교양으로 python 과목을 들었는데, 기초적인 자료구조에 대한 설명을 보았다. 물론 그 중에서도 잘 사용하지 않는 Dict, 튜플, set 등이 있었다. 그러다 갑자기쓰임새가 비슷할 거 같은 튜플과 리스트 중에 리스트가 더 편한데 왜 튜플을 사용하는지 궁금했다. 튜플의 가장 큰 불편한 점이라고 하면 리스트처럼 데이터를 추가할 수도, 변경할 수도 없다. 첫번째. 동적 배열 당연하지만 메모리 측면에서 튜플이 훨씬 유리하다고 한다. 그 중 리스트는 동적으로 크기를 늘릴 수 있는데 이러한 과정에서 메모리 크기는 더블링 된다. 따라서 배열에 추가로 데이터를 추가하는 동적 배열을 하게 될 경우 더 많은 메모리를 사용하게 된다. 두번째. 불변객체 튜플은 데이터를 변경할 수 없는 불변개체이며 리스트는 안의 데..
논문에서 가끔 Auxiliary task라는 용어를 보았고 task를 잘 정해 수행한다면 좋은 결과를 내지 않을까 생각해서 한번 찾아보았다. 논문이 길지 않은 것도 있지만 내가 원하는 결과만을 압축해서 요약해보았다. https://arxiv.org/pdf/1805.06334.pdf Introduction MTL은 하나의 input에 대하여 여러 output을 산출하는 방식이다(논문에서는 구체적인 작업을 언급하기는 하지만 내 관심사는 아니라서 제외하였다). 그리고 auxiliary task를 소개하는데, image에 대한 rich, robust common representation을 제공할 수 있다고 하며 main task를 푸는데 도움이 될 수 있다고 한다. 이를 시각화해보면 다음과 같다. 위 이미지는..
해당 논문은 2018 ICML 에서 억셉되었고 가중치에 관련한 논문이다. 풀 제목은 GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks 이다. https://arxiv.org/pdf/1711.02257.pdf Introduction 많은 딥러닝 모델들이 높은 성능을 보이고 있지만 vision에 관련하여 full understanding 하기 위해서는 multit task들을 동시에, 효율적으로 할 수 있어야한다고 언급한다(단순히 한가지만 잘하는 것이 아니라 여러개를 동시에 잘해야 좋은 것이라는 가정이 깔려있는 거 같다). 그러나 multitask network를 훈련시키기는 어려운데 그 이유는 각기 ..
우선 해당 내용은 아래 블로그의 내용을 따랐으며 개인 공부를 위해 개인적인 이해를 추가로 담은 내용입니다. https://hyeongminlee.github.io/post/bnn002_mle_map/ Maximum Likelihood Estimation(MLE) & Maximum A Posterior(MAP) | Hyeongmin Lee's Website Bayes Rule을 이용한 방식의 가장 큰 단점들 중 하나는 Likelihood의 Probability Distribution을 알아야 한다는 점입니다. 물론 앞선 포스팅에서는 관찰을 통해 Likelihood를 얻었지만, 여간 귀찮은 일이 아닐 hyeongminlee.github.io 간단한 Regression(회귀) 문제를 푼다고 했을 때, inpu..
사실 딥러닝 모델을 훈련시키면 그냥 loss가 떨어지면 떨어지는 갑다~ 하고 그냥 지켜보고 거의 무조건적으로 수렴할 생각으로 지켜본다. 그러나 최근에 와서 느낀건데 수렴을 안하는 경우도 상당히 많으며 이를 위해서는 초기 loss가 어느정도 되는지도 중요하다. 그래야 1epoch후 얼마나 줄어들었고를 어느정도 알 수 있기 때문이다. CrossEntropy를 사용할 경우 10개의 클래스를 시험해본다면 평균 정답률은 10%정도일 것이다. 그러면 초기 loss는 어느 정도 될까? dataset = datasets.CIFAR10(root = './sample_data', train = True, download = True, transform = transforms.ToTensor()) dataloader = D..