픽셀의 생성적 사전 훈련 (Chen et al.) 및 관련 코드를 기반으로 하는 이미지 GPT의 PyTorch 구현입니다.
테스트 세트에서 모델이 생성한 절반 이미지 완성입니다. 첫 번째 열은 입력입니다. 마지막 열은 원본 이미지입니다.
CIFAR10에서 사전 훈련된 iGPT-S. 모델이 ImageNet 전체가 아닌 CIFAR10에서만 훈련되었기 때문에 완성도가 상당히 낮습니다.
sklearn.cluster.MiniBatchKMeans
사용). 블로그 게시물에 따르면 가장 큰 모델인 iGPT-L(140만 매개변수)은 2500 V100일 동안 훈련되었습니다. Attention 헤드 수, 레이어 수 및 입력 크기(모델 크기에 2차적으로 영향을 미침)를 크게 줄임으로써 단일 NVIDIA 2070에서 2시간 이내에 Fashion-MNIST에서 자체 모델(26K 매개변수)을 훈련할 수 있습니다.
사전 훈련된 일부 모델은 models
디렉터리에 있습니다. ./download.sh
실행하여 cifar10
사전 학습된 iGPT-S 모델을 다운로드합니다.
이미지가 다운로드되고 num_clusters
클러스터와 함께 k -평균을 사용하여 중심이 계산됩니다. 이러한 중심은 이미지가 모델에 입력되기 전에 이미지를 양자화하는 데 사용됩니다.
# options: mnist, fmnist, cifar10
python src/compute_centroids.py --dataset mnist --num_clusters=8
# creates data/_centroids.npy
참고: 모델에서 num_vocab
과 동일한 num_clusters
사용하십시오 .
train
하위 명령과 함께 src/run.py
사용하여 모델을 훈련할 수 있습니다.
데이터세트와 모델 구성을 지정하여 모델을 사전 학습할 수 있습니다. configs/s_gen.yml
논문의 iGPT-S에 해당하며, configs/xxs_gen.yml
은 컴퓨팅이 제한된 장난감 데이터 세트를 시도하기 위한 초소형 모델입니다.
python src/run.py --dataset mnist train configs/xxs_gen.yml
사전 훈련된 모델은 구성 파일 및 데이터 세트와 함께 사전 훈련된 체크포인트 경로를 --pretrained
에 전달하여 미세 조정할 수 있습니다.
python src/run.py --dataset mnist train configs/xxs_clf.yml --pretrained=models/mnist_gen.ckpt `
위와 같은 그림은 테스트 세트의 임의 이미지를 사용하여 생성할 수 있습니다.
# outputs to figure.png
python src/sample.py models/mnist_gen.ckpt
내 트윗에서 볼 수 있는 것과 같은 GIF는 다음과 같이 만들 수 있습니다.
# outputs to out.gif
python src/gif.py models/mnist_gen.ckpt