분류 전체보기 (539) 썸네일형 리스트형 Projected GAN 4 요즘 포스팅 하기가 귀찮다... 누구 보여줄려고 하는것도 아니고 그냥 안쓰면 게을러져서 쓰는건데 쓰는것도 귀찮아지는중... 대충 추린 이미지 17000+로 학습 진짜 이미지 생성이미지 보간 동영상 후기 글자가 일관적이지 못해서 제대로 만들어지지 않는 듯 하다. 그래도 전체적인 퀄리티는 만족. 최고 FID 4.85 Projected GAN 3 projected gan의 베이스 모델을 stylegan2로 하고 잠재벡터 차원을 줄여서 학습해보니 확실히 다양한 색상이 나오긴 한다. 적은 수의 특징을 찾으려다 보니 색상이 가장 큰 특징이라 그런 것 같다. 하지만 계속 학습을 진행하니 또 모드붕괴됨... 내가 며칠동안 베이스모델을 stylegan2로 하고 fid를 끌어올려볼려고 많은 시도를 해봤는데 딱히 엄청난 성과가 있진 않았다. 지금까지 내가 이 데이터셋으로 stylegan2모델을 많이 돌려봤지만 fid가 50이하로 떨어진 적이 한번도 없었는데 fastgan으로 하면 첫 평가인 16000kimg만에 fid가 20 이하로 떨어진다. 개인이 다양하고 방대한 빅데이터를 마련할 수가 없으니 (물론 오픈된 데이터셋을 사용하면 되긴 하지만 나만의 데이터셋을 .. Projected GAN 2 베이스 모델을 stylegan2로 바꿔서 돌려봤는데...(stylegan2, fastgan 중에 선택할 수 있다.) (스압 좀 길어요 글만 읽고 싶으면 맨아래로 ㄱㄱ) 그냥 답이 없는듯하다... 이 모델에서는 ADA를 사용하지 않았는데 ADA가 없어서 그런건지 그냥 데이터셋이 답이 없는건지... ADA도 사실 이미지 수를 늘리는 일종의 트릭이니 작은 데이터셋에서는 fastgan이 훨씬 효과적인듯 하다. 근데 fastgan에서는 자가복제 문제가 생기는데, 실제 이미지 중 세 명 이상이 나오는 이미지는 하나도 없는데도 불구하고 저런 이미지들이 생긴다. 엄청나게 빨리 수렴하긴 하지만 그 뒤로는 계속 발산하는 것도 문제고. 내가 샤워하면서 생각해낸 게 있는데, (아르키메데스 괜히 목욕탕에서 유레카를 외친게 아닌.. Projected GAN 1 styleGAN 포스팅의 끝에서도 언급했지만 https://github.com/autonomousvision/projected_gan GitHub - autonomousvision/projected_gan: [NeurIPS'21] Projected GANs Converge Faster [NeurIPS'21] Projected GANs Converge Faster. Contribute to autonomousvision/projected_gan development by creating an account on GitHub. github.com 앞으로 이 모델을 사용할 예정이다. 일단은 뭐... 모드 붕괴가 일어나 버렸고 밑에서부터 읽는 게 맞는건가 싶을 정도로 수상하게 발산하는 FID.... 시작전부터 .. styleGAN 학습을 위한 여정 7 - 진짜 끝 1. Attention 진짜 별의별 시도를 다 해봐도 꿈쩍도 안하던 FID가 어텐션 레이어를 추가하니 조금씩 줄어들었다. 크게 개선되진 않았지만. 2. Palette Image 팔레트 이미지를 RGB로 변경하면 아래와 같은 경고가 뜨는데 경고만 항상 뜨고 에러가 발생하진 않고 이미지를 출력해봐도 별로 문제없길래 그냥 무시했었는데 실제로 RGB이미지로 변경이 되지 않았던 거였다. 팔레트 이미지는 RGBA로 변경한 다음 RGB로 변경해야 한다. RGBA로 변환한 후에 여정 6에 있던 RGB 변환 함수로 변환했다. 3. 그리고 여정을 끝내버린 치명적인 문제점이 있었는데... 내가 초기 데이터셋을 계속해서 추가, 삭제하면서 데이터셋의 많은 변화가 있었는데, 초기 데이터셋의 RGBA이미지들을 RGB로 강제변환 했.. styleGAN 학습을 위한 여정 6 5까지를 마지막으로 하고 후기까지 썼는데 그냥 완성해보고 싶어서 5탄에서 학습하던 모델 마저 돌려봄 계속 돌리니까 모양이 잡혔다. 그리고 여러가지 문제들을 수정했다. 1. RGBA 이미지 RGBA 이미지를 RGB 이미지로 변환 하면 투명한 부분이 이상한 패턴무늬로 바뀌는 경우가 있다. 대부분의 이미지들의 바탕이 흰색이기 때문에 다음 코드로 RGBA 이미지의 투명부분을 흰색으로 처리한 후 RGB이미지로 저장했다. img = Image.open('이미지 경로') if img.mode == 'RGBA': img.load() background = Image.new("RGB", img.size, (255, 255, 255)) background.paste(img, mask=img.split()[3]) # 3 i.. styleGAN 학습을 위한 여정 5 + 후기 데이터셋이 문제라는 것을 깨닫고 새로운 대책을 생각해 냈는데, 기존 데이터셋과 비슷하지만 다른 데이터셋을 가짜로 판단하도록 판별자를 학습시키는 것이다. 저번의 글에서 GAN는 생성 이미지의 확률분포와 목표 데이터셋의 확률 분포를 근사시키는 것이라고 했었다. 위 이미지의 진한 회색의 안쪽으로 근사될수록 더 진짜같은 이미지를 생성해 내는 것이다. 지금 내 데이터셋이 질이 좋지 않아 공간 자체가 모호한 상황이고 그래서 학습이 진행되지 않는다. 실제 latent vector는 단순한 2차원이 아닌 훨씬 고차원이기 때문에 쉽게 근사시키기가 힘들다. 다른 데이터셋을 가짜로 판단하도록 학습시킨다는 게 무슨 뜻이냐면 분포 내부에 대한 정보(실제 데이터셋) 뿐만 아니라 바깥에 대한 정보를 줌으로써 확률분포 공간의 경계에.. styleGAN 학습을 위한 여정 4 진짜 며칠동안 이것도 해보고 저것도 해보고 수많은 피라미터들과 씨름을 해온 결과 데이터셋이 문제인 것을 알았다. GAN의 학습은 latent vector에서 생성된 이미지의 확률분포를 실제 이미지의 확률분포에 근사시키는 과정인데 내 데이터셋은 이미지가 다양하지 않고 몇개씩 비슷한 이미지들이 꽤 많아서 바닐라GAN을 쓰기도, 조건부 GAN을 쓰기도 애매한 그런 위치에 있다. 보통의 GAN 학습에 쓰이는 데이터셋이 이런 고른 분포이고 조건부 GAN에는 이런 라벨별로 분류된 데이터가 쓰이는데 내 데이터셋은 뭔가 이런 느낌. 그냥 GAN을 쓰기엔 유사한 이미지들이 몇개씩 뭉쳐있고, 조건부 GAN을 쓰기엔 너무 종류가 많은데다 라벨별 데이터가 50개도 안된다. 그래서 일단 그냥 GAN을 쓰고 정답이 아닌 이미지를.. styleGAN 학습을 위한 여정 3 이전글 https://ostin.tistory.com/8 https://ostin.tistory.com/9 이전 글의 이미지들을 보면 여러 개의 이미지들이 거의 똑같이 생성됐다. 사실 이렇게 이미지들이 각각 다르게 생성되야 잘 훈련된 모델이다. 똑같은 이미지들이 계속 생성 되는 걸 모드 붕괴(Mode Collapse)라고 하는데 판별자의 성능이 생성자에 비해 너무 강해서 생성자가 판별자를 속이지 못하고 가장 손실이 낮은 하나의 이미지만 반복 생성하게 되는 것이다. 그 반대의 상황도 있을진 모르겠지만 어쨋든 거의 모든 상황에서는 판별자가 강하다. 모드 붕괴를 막기 위해서 여러가지 시도를 해 보았는데 1. 배치사이즈 줄이기 배치 사이즈가 클수록 판별자의 성능이 좋아진다고 한다 2.augmentation 늘리.. styleGAN 학습을 위한 여정 2 이전 글 https://ostin.tistory.com/8 augmentation을 수정하고 그 이후로도 계속 학습을 진행 했는데.... 이미지가 계속 뭉쳐졌다 풀어졌다를 반복하며 어느 단계 이상으로 진행이 안 된다. 오히려 7000스텝 때의 이미 더 형체가 있을 정도다. 보면 실제 이미지 중 하나와 비슷하다. 훨씬 비슷한 이미지가 있기는 한데 데이터갯수가 갯수인지라 그냥 이걸로 ㅎ loss를 코드 제작자가 소개한 dual constrative loss를 쓰고 있었는데 hinge loss로 바꾸고 다시 돌려봤다. 이전보다 더 괜찮은 결과나 나오긴 한다. 하지만 다시 뭉개지는 모습..... 계속해서 뭉개지는 이미지들을 보니 이건 피라미터만의 문제가 아니라는 생각이 들었고.. augmentation을 dif.. styleGAN 학습을 위한 여정 https://github.com/lucidrains/stylegan2-pytorch GitHub - lucidrains/stylegan2-pytorch: Simplest working implementation of Stylegan2, state of the art generative adversarial net Simplest working implementation of Stylegan2, state of the art generative adversarial network, in Pytorch. Enabling everyone to experience disentanglement - GitHub - lucidrains/stylegan2-pytorch: S... github.com 위 깃허브 코드를.. 이전 1 ··· 42 43 44 45 다음