원본 : [Tensorflow 버전]
다양한 Gans의 Pytorch 구현.
이 저장소는 Hwalsuk Lee의 텐서 플로우 생성 모델-수집을 참조하여 재 구현되었습니다.
나는 텐서 플로우 생성 모델-수집으로 가능한 한이 저장소를 구현하려고했지만 일부 모델은 약간 다릅니다.
이 저장소에는 CPU 모드 Pytorch 용 코드가 포함되어 있지만 테스트하지 않았습니다. GPU 모드 Pytorch에서만 테스트했습니다.
| 이름 | 종이 링크 | 가치 기능 |
|---|---|---|
| 간 | arxiv | ![]() |
| LSGAN | arxiv | ![]() |
| WGAN | arxiv | ![]() |
| WGAN_GP | arxiv | ![]() |
| 드라간 | arxiv | ![]() |
| CGAN | arxiv | ![]() |
| Infogan | arxiv | ![]() |
| ACGAN | arxiv | ![]() |
| ebgan | arxiv | ![]() |
| 시작했다 | arxiv | ![]() |

생성기 및 판별 자의 네트워크 아키텍처는 Infogan 용지에서와 같이 예외적인 Sames입니다.
모든 GAN 변형에서 핵심 아이디어를 공정하게 비교하기 위해 네트워크 아키텍처에 대한 모든 구현은 EBGAN을 제외하고 동일하게 유지되고 시작됩니다. 이들은 차별기를 위해 자동 인코더 스트루 커터를 채택하기 때문에 EBGAN/시작에 대해 작은 수정이 이루어집니다. 그러나 나는 Discrirminator의 용량을 유지하려고 노력했다.
다음 결과는 명령으로 재현 할 수 있습니다.
python main.py --dataset mnist --gan_type <TYPE> --epoch 50 --batch_size 64
모든 결과는 고정 노이즈 벡터에서 생성됩니다.
| 이름 | 에포크 1 | 에포크 25 | 에포크 50 | gif |
|---|---|---|---|---|
| 간 | ![]() | ![]() | ![]() | ![]() |
| LSGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| 드라간 | ![]() | ![]() | ![]() | ![]() |
| ebgan | ![]() | ![]() | ![]() | ![]() |
| 시작했다 | ![]() | ![]() | ![]() | ![]() |
각 행의 노이즈 벡터가 동일하고 각 열은 동일한 레이블 조건을 갖습니다.
| 이름 | 에포크 1 | 에포크 25 | 에포크 50 | gif |
|---|---|---|---|---|
| CGAN | ![]() | ![]() | ![]() | ![]() |
| ACGAN | ![]() | ![]() | ![]() | ![]() |
| Infogan | ![]() | ![]() | ![]() | ![]() |
모든 결과는 동일한 노이즈 벡터 및 라벨 조건을 가지지 만 연속성 벡터가 다릅니다.
| 이름 | 에포크 1 | 에포크 25 | 에포크 50 | gif |
|---|---|---|---|---|
| Infogan | ![]() | ![]() | ![]() | ![]() |
| 이름 | 손실 |
|---|---|
| 간 | ![]() |
| LSGAN | ![]() |
| WGAN | ![]() |
| WGAN_GP | ![]() |
| 드라간 | ![]() |
| ebgan | ![]() |
| 시작했다 | ![]() |
| CGAN | ![]() |
| ACGAN | ![]() |
| Infogan | ![]() |
MNIST의 네트워크 아키텍처에 대한 의견도 여기에 적용됩니다.
Fashion-Mnist는 60,000 개의 예제 교육 세트와 10,000 개의 예제 테스트 세트로 구성된 최근에 제안 된 데이터 세트입니다. 각 예제는 10 개의 클래스의 레이블과 관련된 28x28 그레이 스케일 이미지입니다. (티셔츠/상단, 바지, 풀오버, 드레스, 코트, 샌들, 셔츠, 운동화, 가방, 발목 부츠)
다음 결과는 명령으로 재현 할 수 있습니다.
python main.py --dataset fashion-mnist --gan_type <TYPE> --epoch 50 --batch_size 64
모든 결과는 고정 노이즈 벡터에서 생성됩니다.
| 이름 | 에포크 1 | 에포크 25 | 에포크 50 | gif |
|---|---|---|---|---|
| 간 | ![]() | ![]() | ![]() | ![]() |
| LSGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN | ![]() | ![]() | ![]() | ![]() |
| WGAN_GP | ![]() | ![]() | ![]() | ![]() |
| 드라간 | ![]() | ![]() | ![]() | ![]() |
| ebgan | ![]() | ![]() | ![]() | ![]() |
| 시작했다 | ![]() | ![]() | ![]() | ![]() |
각 행의 노이즈 벡터가 동일하고 각 열은 동일한 레이블 조건을 갖습니다.
| 이름 | 에포크 1 | 에포크 25 | 에포크 50 | gif |
|---|---|---|---|---|
| CGAN | ![]() | ![]() | ![]() | ![]() |
| ACGAN | ![]() | ![]() | ![]() | ![]() |
| Infogan | ![]() | ![]() | ![]() | ![]() |
모든 결과는 동일한 노이즈 벡터 및 라벨 조건을 가지지 만 연속성 벡터가 다릅니다.
| 이름 | 에포크 1 | 에포크 25 | 에포크 50 | gif |
|---|---|---|---|---|
| Infogan | ![]() | ![]() | ![]() | ![]() |
| 이름 | 손실 |
|---|---|
| 간 | ![]() |
| LSGAN | ![]() |
| WGAN | ![]() |
| WGAN_GP | ![]() |
| 드라간 | ![]() |
| ebgan | ![]() |
| 시작했다 | ![]() |
| CGAN | ![]() |
| ACGAN | ![]() |
| Infogan | ![]() |
다음은 기본 폴더 구조를 보여줍니다.
├── main.py # gateway
├── data
│ ├── mnist # mnist data (not included in this repo)
│ ├── ...
│ ├── ...
│ └── fashion-mnist # fashion-mnist data (not included in this repo)
│
├── GAN.py # vainilla GAN
├── utils.py # utils
├── dataloader.py # dataloader
├── models # model files to be saved here
└── results # generation results to be saved here
이 구현은 텐서 플로우 생성 모델-수집을 기반으로하며 GPU를 사용하여 Ubuntu 16.04에서 Pytorch 0.4.0으로 테스트되었습니다.