분류 전체보기 78

Pytorch weight 저장에 대해 우리가 알아야하는 모든 것

towardsdatascience.com/everything-you-need-to-know-about-saving-weights-in-pytorch-572651f3f8detowardsdatascience.com/everything-you-need-to-know-about-saving-weights-in-pytorch-572651f3f8de Everything You Need To Know About Saving Weights In PyTorch What do we Deep Learning practitioners do once we are done with training our models ? We Chill ! towardsdatascience.com towards data science의 위 글을 ..

GAN을 이용한 염색 및 헤어 스타일 합성, <꽤 GAN찮은 헤어살롱>

제12회 빅데이터 연합동아리 BOAZ 컨퍼런스를 위해 진행한 프로젝트 소개글입니다. 발표 자료는 BOAZ slide share에서, 발표 영상은 BOAZ Youtube 계정에서, 관련 코드는 Github에서 확인하실 수 있습니다. (글씨를 클릭하면 해당 사이트로 이동합니다.) 어떤 머리가 어울릴지 미리 알아보고싶어! '앞머리를 기르면 어떨까?', '염색은 처음인데.. 어울릴까?' 헤어 스타일은 많은 사람들의 평생 고민입니다. 미용실에 가기 전에 헤어 스타일을 미리 체험해볼 수 있다면 얼마나 좋을까요? 실제로 시중에는 소비자들의 이런 니즈를 반영한 어플이 많이 출시되어있습니다. 위가 바로 배우 손예진님의 사진을 어플에 사용한 결과입니다. 결과가 나쁘지 않죠? 하지만 헤어 스타일 별로 고정된 틀이 존재하기 ..

[TIL] 0824 AdaIN / U-GAT-IT 논문 정리

[주절주절] BOAZ 2020 여름 GAN 스터디 [Today I Learned] 1) AdaIN(Adaptive Instance Normalization) : 컨텐츠 feature의 평균과 분산을 스타일 feature에 대해 정렬해 스타일을 입히는 방식 ([이미지 = 컨텐츠 + 스타일]이라는 관점에서 시작) - 기존) Gatys가 제안한 DNN을 통한 Style transfer. (DNN을 통한 컨텐츠와 스타일 인코딩) ㄴ BUT, 스타일 개수만큼 모델이 필요함. 속도가 느림 등 문제 多 > 해결해보자! ( * 논문 Full 제목이 Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization) - 배경지식인 동시에 사고 흐름🧠 ①..

[TIL] 0819 BAGAN 논문 정리

[주절주절] CVML Imbalanced한 데이터셋, 특히나 minor class의 개수까지 적을 경우 classification과 같은 문제를 해결하기가 어렵다. 이 때 minor class 데이터를 GAN을 통해 augmentation하는 것이 참여하게 된 프로젝트의 목표이다. 👩🏻‍💻 교수님께서 BAGAN이라는 논문을 제시해주셨고 이 모델을 토대로 이것저것 붙였다 뗐다, 변형해보라고 방향성을 일단 잡아주셨다. 다른 모델을 써도 되고, 심지어 GAN을 쓰지 않아도 되지만 이런 태스크에 대해서는 아는게 없기 때문에 BAGAN부터 차근차근 시작해보려한다. : > [Today I Learned] # BAGAN 논문 정리 p.3 - 4) BAGAN - GAN과 오토인코더 모두 채택> 두 모델의 장점 모두 이..

[TIL] Python isinstance / Json.dumps ; default

[주절주절] 😤 [Today I Learned] # Python isinstance 주어진 인스턴스가 특정 클래스 혹은 데이터 타입인지 검사해주는 함수이다. isinstance(인스턴스, 클래스/데이터 타입)으로 사용한다. result = isinstance(1,int) print(result) > True result = isinstance([1,2,3],list) print(result) > True isinstance 함수가 type()에 대해 갖는 장점은 상속 관계도 확인할 수 있다는 점이다. class Soccer(self): ... class Play(Soccer): ... p = Play() type(p) == Play > True type(p) == Soccer > False isinsta..

[TIL] Python List Comprehension

[주절주절] - [Today I Learned] # Python comprehension Python comprehension이란 iterable한 객체를 생성하기 위한 방법 중 하나로 크게 List, Set, Dictionary, Generator, 총 4가지 종류의 comprehension이 있다. # List Comprehension(LC) List comprehension은 리스트를 쉽게 생성할 수 있는 방법이다. 단순 반복 조건은 물론, 함수까지 함께 이용하면 다양한 조건의 리스트도 생성할 수 있다. 다음은 내가 가장 처음 작성했던 코드와, 그를 List comprehension을 통해 개선한 결과이다. 1) 1~n까지의 숫자를 특정 함수에 적용한 리스트 반복 생성 #개선 전 def rating..

[TIL] Python 내장 함수

[주절주절] - [Today I Learned] # Python 내장 함수 파이썬에는 사용할 수 있는 여러 함수가 내장되어있다. 이러한 내장함수는 def next(self): return self.__next__() 와 같은 식으로 정의되어있다. (실제로 파이썬이 어떻게 코딩되어있는지 궁금한데 보는 곳을 못찾았다.) 따라서 내가 새롭게 정의한 class에 __next__() 함수를 정의해주면, 클래스명.함수명()이 아니라 next()와 같이 곧바로 함수를 사용할 수 있게 된다. class Fetcher(self): ~ ... def __next__(): print('next!') F = Fetcher() next(F) > next! 내장함수와 이름이 다른 함수를 위와 같이 사용하고 싶을 때에는 내장 함수..

선형대수로 알아보는 PCA(주성분 분석)

들어가기에 앞서... 회귀분석 수업을 듣고 선형대수 관점에서 PCA(주성분 분석)를 정리한 글입니다. 제가 공부하고 이해한 선에서 글을 적다 보니, 잘못된 내용이나 표현이 있을 수 있습니다. 그런 부분에 대한 지적은 댓글로 남겨주시면 감사하겠습니다. :) PCA(주성분 분석)와 다중공선성 다중회귀분석을 하기 위해서는 만족해야 하는 가정이 몇 가지 있습니다. 그중 한 가지가 바로 '독립변수들 간의 다중공선성이 없어야 한다'는 것입니다. 회귀분석에서 다중공선성이란 독립변수들 간에 강한 상관관계가 나타나는 문제를 뜻합니다. (이를 수학적으로는 어떤 독립변수가 다른 독립변수들과 선형 독립이 아닌 경우라고 표현할 수 있습니다.) 이러한 문제를 해결하기 위한 방법 중 하나가 바로 PCA입니다. PCA는 고차원 공간..

Computer vision 분야에서의 Self-Attention

https://towardsdatascience.com/self-attention-in-computer-vision-2782727021f6 Self-Attention In Computer Vision Using the attention mechanism as the building block in computer vision models towardsdatascience.com towards data science의 위 글을 번역한 글입니다! 오역한 부분이나 자연스러운 표현을 위해 의역한 부분이 있을 수 있습니다. 별(*)로 시작하는 문장, 문단은 제가 추가한 해설입니다. 잘못된 내용에 대한 지적은 댓글로 부탁드립니다. :) Transformer 네트워크가 도입된 이래로, 딥러닝에서의 Attention ..

공부방/Vision 2020.05.31

[TIL] CycleGAN 이용해 사진 ↔ 고흐의 그림 변환하기

[주절주절] - [Today I Learned] # 시드 설정하기 # Set random seed for reproductibility manualSeed = 999 print("Random seed:",manualSeed) random.seed(manualSeed) torch.manual_seed(manualSeed) 모델이나 이런저런 util을 바꾸고 추가하다 보면 어느 순간 잘되던 학습이 안 되는 때가 있다. 그때, weight init과 같은 것들의 영향을 줄여 정말 내가 새로 추가한 것이 문제인지 알 수 있게 된다. # Data imbalance 1) 고흐의 그림은 유한하지만 풍경, 인물 사진은 무한하게 구할 수 있기 때문에 학습에 사용할 수 있는 데이터 수에도 차이가 나게 된다. 배치 사이즈를..