AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

这篇具有很好参考价值的文章主要介绍了AttnGAN代码复现(详细步骤+避坑指南)文本生成图像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

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

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

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

二、下载代码和数据集

(下载链接如果打不开,翻到文末)

1、首先在github上下载模型代码:https://github.com/taoxugit/AttnGAN(此为Python2.7版本)

🌟🌟🌟最近在github上找到了AttnGAN的python3版本,可以有效避免很多语法错误,推荐下载(22年2月28日更新)🌟🌟🌟:
https://github.com/davidstap/AttnGAN

AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

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

AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

3、下载鸟类图像数据:http://www.vision.caltech.edu/visipedia/CUB-200-2011.html 将它们提取到data/birds/。
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像
🌟🌟🌟若该链接打不开可下载这个,内容是一样的(22年2月28日更新)🌟🌟🌟:https://drive.google.com/file/d/1hbzc_P1FuxMkcabkgn9ZKinBwW683j45/view

AttnGAN代码复现(详细步骤+避坑指南)文本生成图像
4、下载完后目录如下:
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

三、搭建环境

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
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

可能出现的问题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’
问题原因:环境问题,环境没配好
解决方案:卸载原环境,重新配置pytorch

可能出现的问题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’)

可能出现的问题6:IndexError: list index out of range
问题原因:代码问题,数组超限
解决方案:AttnGAN代码复现(详细步骤+避坑指南)文本生成图像
将 if i < (cfg.TREE.BRANCH_NUM - 1):改为
if i < (cfg.TREE.BRANCH_NUM - 2):

可能出现的问题7:IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number
问题原因:在pytorch高版本用item()
解决方案:将【0】改为.item()AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

可能出现的问题8:OSError: cannot open resource
问题原因:ImageFont.truetype(‘Pillow/Tests/fonts/FreeMono.ttf’, 50),环境里没有FreeMono这个字体
解决方案:更换字体,更改为:
fnt = ImageFont.truetype(‘Pillow/Tests/fonts/arial.ttf’, 40)

五、运行

1、预训练模型的下载(选做)

如果做了第四步,可以直接进入下一小节

如果没有做第四步,首先下载别人已经训练好的预训练模型:
https://drive.google.com/open?id=1GNUKjVeyWYBJ8hEU-yrfYQpDOkxEyP3V将其保存到DAMSMencoders/

下载https://drive.google.com/open?id=1lqNG75suOuR_8gjoEPYNp8VyT_ufPPig并将其保存到models/

2、运行

训练GAN:python main.py --cfg cfg/bird_attn2.yml --gpu 1
运行:python main.py --cfg cfg/eval_bird.yml --gpu 1
以从“./data/birds/example_filenames.txt”中列出的文件中的标题生成示例。结果保存到DAMSMencoders/.

可能出现的问题1:‘str‘ object has no attribute ‘decode
问题原因:Python2和Python3在字符串编码上的区别。
解决方案:.encode(‘utf-8’). decode(‘utf-8’) ) #先编码再解码:
filenames = f.read().encode(‘utf8’).decode(‘utf8’).split(’\n’)
sentences = f.read().encode(‘utf8’).decode(‘utf8’).split(’\n’)

可能出现的问题2:FileNotFoundError: [Errno 2] No such file or directory:’…/data/birds/text/180.Wilson_Warbler/Wilson_Warbler_0007_175618.txt’
问题原因:该文件没找到, 路径问题
解决方案:更改为正确的路径,如果text是处于压缩状态要解压。

可能出现的问题3:RuntimeError: CUDA out of memory. Tried to allocate 40.00 MiB (GPU 0; 4.00 GiB total capacity; 2.86 GiB already allocated; 33.84 MiB free; 20.86 MiB cached)
问题原因:GPU性能不足(但依然还是能跑出结果,结果在AttnGAN-master\models\bird_AttnGAN2\example_captions中)
解决方案:花钱升级硬件或者放到服务器

六、实验结果
可以在这里输入相应测试的文本
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像
然后在这里就可以看到生成的各个阶段的图像和注意力机制的应用。
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像
在这里可以选择采样数据集
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

然后在这里可以看到采样生成的图像。
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

部分实验结果如下:

1.this bird is yellow with white and has a very long beak
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像
2.this bird has wings that are blue and has a red belly
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

3.this bird is yellow with white on its head and has a very short beak
AttnGAN代码复现(详细步骤+避坑指南)文本生成图像

六、资源下载

打不开网址的可以点击:https://download.csdn.net/download/air__Heaven/85067478
该文件除了需要下载配置好图像数据集(二-3),其他都是配置好了的文章来源地址https://www.toymoban.com/news/detail-440865.html

到了这里,关于AttnGAN代码复现(详细步骤+避坑指南)文本生成图像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 优化 RDMA 代码的建议和技巧-rdma性能优化技巧-避坑指南

    DMA 代表直接内存访问。这意味着应用程序可以在 CPU 干预的情况下直接访问(读/写)主机内存。如果您在主机之间执行此操作,它将成为远程直接内存访问 (RDMA) 在阅读有关 RDMA 的内容时,您会注意到一些用于描述其优点的术语。 “零复制 Zero Copy”、“内核绕过 Kernel Bypas

    2024年02月03日
    浏览(36)
  • 【ChatGPT】ChatGPT使用指南——文本生成

    目录 ChatGPT使用指南——文本生成 1 引言 2 文本摘要任务 2.1 什么是文本摘要?

    2024年02月07日
    浏览(31)
  • ResNeXt代码复现+超详细注释(PyTorch)

    ResNeXt就是一种典型的混合模型,由基础的Inception+ResNet组合而成,本质在gruops分组卷积,核心创新点就是用一种平行堆叠相同拓扑结构的blocks代替原来 ResNet 的三层卷积的block,在不明显增加参数量级的情况下提升了模型的准确率,同时由于拓扑结构相同,超参数也减少了,便

    2024年02月15日
    浏览(42)
  • ResNet代码复现+超详细注释(PyTorch)

    关于ResNet的原理和具体细节,可参见上篇解读:经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现) 接下来我们就来复现一下代码。 源代码比较复杂,感兴趣的同学可以上官网学习:  https://github.com/pytorch/vision/tree/master/torchvision 本

    2024年02月11日
    浏览(30)
  • DenseNet代码复现+超详细注释(PyTorch)

    关于DenseNet的原理和具体细节,可参见上篇解读:经典神经网络论文超详细解读(六)——DenseNet学习笔记(翻译+精读+代码复现) 接下来我们就来复现一下代码。 整个DenseNet模型主要包含三个核心细节结构,分别是 DenseLayer (整个模型最基础的原子单元,完成一次最基础的

    2023年04月23日
    浏览(41)
  • 如何本地部署Stable Diffusion:详细步骤与指南

    Stable Diffusion作为一种前沿的深度学习图像生成技术,在艺术创作、设计、科学可视化等领域展现出巨大的潜力。若您希望在自己的本地环境中部署Stable Diffusion,以下是一份详细的步骤与指南,帮助您成功搭建并运行该模型。 一、准备环境 在开始部署之前,您需要确保本地环

    2024年03月14日
    浏览(63)
  • WireShark 安装指南:详细安装步骤和使用技巧

    Wireshark是一个开源的网络协议分析工具,它能够捕获和分析网络数据包,并以用户友好的方式呈现这些数据包的内容。Wireshark 被广泛应用于网络故障排查、安全审计、教育及软件开发等领域。接下将讲解Wireshark的安装与简单使用。 目录 Wireshark安装步骤 Npcap安装步骤 USBPcap安

    2024年02月21日
    浏览(58)
  • git生成ssh密钥详细步骤

    首先右键点击电脑桌面,点击“git bash here”,打开git命令窗口 如果git用户名和邮箱等已经完成配置,则跳过此步骤,直接操作第3条;假如没有配置,继续如下操作: (1)、在命令窗口配置用户,输入命令:git config --global user.name \\\"blalalala\\\"。其中” blalalala”是你自己的用户名;

    2023年04月21日
    浏览(72)
  • git 生成密钥详细步骤 和 配置

    首先右键点击电脑桌面,点击选择\\\"Git Bash Here\\\",打开git命令窗口; 首先右键点击电脑桌面,点击选择\\\"Git Bash Here\\\",打开git命令窗口; 在git命令窗口配置用户,输入命令:git config --global user.name “mink”。其中“blkj”是你自己要填的用户名; .接着进行邮箱配置,输入命令:git co

    2024年02月16日
    浏览(38)
  • ThinkPHP5系列远程代码执行漏洞复现(详细)

    ThinkPHP是一款运用极广的PHP开发框架。其版本5中,由于框架对控制器名没有进行足够的检测,会导致在没有开启强制路由的情况下可执行任意方法,从而导致远程命令执行漏洞。 漏洞危害 启动环境 切换到/thinkphp/5.0.23-rce# 目录下 将version改为2,保存并退出 接着执行 此时环境

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包