其他分享
首页 > 其他分享> > AttnGAN代码复现(详细步骤+避坑指南)

AttnGAN代码复现(详细步骤+避坑指南)

作者:互联网

AttnGAN代码复现(详细步骤+避坑指南)

一、前言

这篇文章是AttnGAN: Fine-Grained TexttoImage Generation with Attention(带有注意的生成对抗网络细化文本到图像生成)的代码复现博文,我边做边写,展示详细步骤、踩坑和debug的过程。

论文地址: https://arxiv.org/pdf/1711.10485.pdf

论文阅读笔记:Text to image论文精读 AttnGAN

二、下载代码和数据集

1、科学上网

2、首先在github上下载模型代码:https://github.com/taoxugit/AttnGAN

在这里插入图片描述

3、下载为鸟类预处理的元数据:https://drive.google.com/open?id=1O_LtUP9sch09QH3s_EBAgLEctBQ5JBSJ
并将其保存到data/

在这里插入图片描述

4、下载鸟类图像数据:http://www.vision.caltech.edu/visipedia/CUB-200-2011.html 将它们提取到data/birds/

在这里插入图片描述
4、下载完后目录如下:
在这里插入图片描述

三、搭建环境

1、首先配置好解释器

2、然后安装环境

pip install python-dateutil
pip install easydict
pip install pandas
pip install torchfile nltk
pip install scikit-image

可能需要额外安装的环境,根据提示进行补充:

pip install torchvision

四、预训练DAMSM 模型

python pretrain_DAMSM.py --cfg cfg/DAMSM/bird.yml --gpu 0

可能出现的问题1:‘EasyDict’ object has no attribute ‘iteritems’
问题原因:Python3中:iteritems变为items
解决方案:根据提示将iteritems改为items
在这里插入图片描述
在这里插入图片描述

可能出现的问题2: ‘EasyDict’ object has no attribute ‘has_key’
问题原因:Python3以后删除了has_key()方法
解决方案:将 b.has_key(k):改为if k in b

可能出现的问题3: module ‘torch._C’ has no attribute ‘_cuda_setDevice’
问题原因:未知
解决方案:未解决

可能出现的问题4:name ‘xrange’ is not defined
问题原因:xrange是python2的用法,在python3中range与xrange已经合并为range了。
解决方案:把用到的程序里的xrange( )函数全部换为range( )

可能出现的问题5: ‘ascii’ codec can’t decode byte 0x80 in position 0: ordinal not in range(128)
问题原因:读取文件时的解码问题
解决方案:更改为:
class_id = pickle.load(f, encoding=‘bytes’)

持续更新中…

标签:xrange,避坑,DAMSM,range,复现,install,pip,AttnGAN
来源: https://blog.csdn.net/air__Heaven/article/details/122458499