利用谷歌colab跑github代码AttnGAN详细步骤 深度学习实验(colab+pytorch+jupyter+github+AttnGAN)

2,251 阅读4分钟

本文已参加「新人创作礼」活动,一起开启掘金创作之路。

Google Colab,全名Colaboratory,是由谷歌提供的免费的云平台,可以使用pytorch、keras、tensorflow等框架进行深度学习。其GPU为Tesla T4 GPU,有很强的算力,对于刚入门机器学习或深度学习的用户,这个平台是不二之选。

@[TOC](谷歌colab跑github代码AttnGAN详细步骤 深度学习)

打开colab,连接云端虚拟机

1、进入谷歌云端硬盘,在更多中找到colaboratory 在这里插入图片描述 2、Colab界面下图所示,相当于Jupyter,以文档的形式展现,可以运行和共享代码。 在这里插入图片描述 3、点击连接,连接谷歌colab为你提供的虚拟机 在这里插入图片描述 等待后,显示这样就是连接成功 在这里插入图片描述 4、更改虚拟机设置,使用GPU,准备开始白嫖 点击左上角修改-笔记本设置-硬件加速改为GPU 在这里插入图片描述 在这里插入图片描述

配置实验资源(code+dataset)

1、运行以下代码装载谷歌云端硬盘到虚拟机

from google.colab import drive
drive.mount('/content/drive')

在这里插入图片描述

可以看到装载到了drive文件夹,即是谷歌云端硬盘(就可以实现云盘文件与虚拟机的连接) 在这里插入图片描述

2、克隆github项目到虚拟机sample_data文件夹(一般情况下放在此文件夹,别处也可以) 首先找到github代码的HHTPS地址,如AttnGAN的: 在这里插入图片描述 然后在colab中输入克隆命令:

!git clone https://github.com/davidstap/AttnGAN.git

即可看到colab虚拟机克隆到了github的实验代码。 在这里插入图片描述 3、根据项目的提示,进行资源的导入

①将谷歌云盘的鸟类预处理的元数据保存到自己的云盘(添加快捷方式就是) 在这里插入图片描述 然后打开colab可以看到,birds.zip已经在我们的云盘中,我们将其挪到AttnGAN的指定位置中(data/) 在这里插入图片描述 挪入后发现,他是zip文件,要进行解压 故我们通过cd命令,进入data文件夹当中。

cd AttnGAN/
cd data/

然后进行解压

!unzip birds.zip

同样,我们发现在解压后的birds中还有一个压缩文件叫做text.zip,同样进行解压,解压成功后可以删掉zip文件,因为colab限制了磁盘存储空间,要省着用,解压成功后的文件目录是这样: 在这里插入图片描述

②、用与①相当的方法,添加鸟类图像数据集的快捷方式到云盘,并将它们挪到data/birds/并且解压。

此处为大家介绍一小部分可能会用到的命令:

返回上一级:cd .. 查看当前目录:pwd 查看当前目录里的所有文件和文件夹:ls 解压zip格式的压缩文件(text.zip为目标文件):unzip text.zip 解压tar格式的压缩文件(CUB_200_2011.tgz为目标文件):!tar -xf CUB_200_2011.tgz

实验运行

1、预训练 DAMSM 模型,回到code目录下,输入以下代码并运行:

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

bug1:会出现

IndexError: invalid index of a 0-dim tensor. Use tensor.item() in Python or tensor.item<T>() in C++ to convert a 0-dim tensor to a number

是因为s_cur_loss0 = s_total_loss0[0]应该改成s_cur_loss0 = s_total_loss0.item(),把他们四兄弟都改成.item() 在这里插入图片描述

bug2:会出现

File "/content/sample_data/AttnGAN/code/miscc/utils.py", line 104, in build_super_images drawCaption(text_convas, captions, ixtoword, vis_size) File "/content/sample_data/AttnGAN/code/miscc/utils.py", line 35, in drawCaption fnt = ImageFont.truetype('Pillow/Tests/fonts/FreeMono.ttf', 50) OSError: cannot open resource

这是因为没有FreeMono字体原因,找到utils.py的50行,改为Humor-Sans.ttf或者LiberationMono-Bold.ttf

后面还有少许bug,这里不再赘述

2、训练 AttnGAN 模型

!python main.py --cfg cfg/bird_attn2.yml --gpu 2

会提示bug:

RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

这个是因为,该虚拟机只有一个gpu可用,将--gpu 2改为--gpu 0

3、采样 采样部分文本测试 在这里插入图片描述 可以在这里更改自己需要的文本,比如:this bird is red and white with big swings and short beak

采样部分文件名测试 在这里插入图片描述

python main.py --cfg cfg/eval_bird.yml --gpu 0

然后可以看到,程序进入正常运行阶段,大功告成。 在这里插入图片描述

运行结果

输入的文本为:this bird is red and white with big swings and short beak 注意力输入 在这里插入图片描述 三阶段的生成器分别生成的图像为: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 实验成功。

使用colab的注意事项

0、colab的GPU使用是完全免费的,随便用,乱用,使劲用,加油一起薅谷歌的羊毛。 1、执行命令行前面加! 2、自带库及库的安装Colab 自带了Pytorch, Tensorflow、Matplotlib、Numpy、Pandas 等深度学习基础库。如果还需要其他依赖,如 Keras,可以新建代码块,利用pip安装 3、连续使用超过12小时会被限制,使用时中途保存模型文件 4、如果虚拟机长时间未检测到你有什么指令和动作,会自动切断连接,一切就得重新来。 5、不要心动去充钱升级权限,国内也有很多优秀的云服务。