Google Colab,全名Colaboratory,是由谷歌提供的免费的云平台,可以使用pytorch、keras、tensorflow等框架进行深度学习。其GPU为Tesla T4 GPU,有很强的算力,对于刚入门机器学习或深度学习的用户,这个平台是不二之选。
1、进入谷歌云端硬盘,在更多中找到colaboratory
2、Colab界面下图所示,相当于Jupyter,以文档的形式展现,可以运行和共享代码。
3、点击连接,连接谷歌colab为你提供的虚拟机
等待后,显示这样就是连接成功
4、更改虚拟机设置,使用GPU,准备开始白嫖
点击左上角修改-笔记本设置-硬件加速改为GPU
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 ortensor.item
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
注意力输入
三阶段的生成器分别生成的图像为:
实验成功。
0、colab的GPU使用是完全免费的,随便用,乱用,使劲用,加油一起薅谷歌的羊毛。
1、执行命令行前面加!
2、自带库及库的安装Colab 自带了Pytorch, Tensorflow、Matplotlib、Numpy、Pandas 等深度学习基础库。如果还需要其他依赖,如 Keras,可以新建代码块,利用pip安装
3、连续使用超过12小时会被限制,使用时中途保存模型文件
4、如果虚拟机长时间未检测到你有什么指令和动作,会自动切断连接,一切就得重新来。
5、不要心动去充钱升级权限,国内也有很多优秀的云服务。