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

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

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


打开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、不要心动去充钱升级权限,国内也有很多优秀的云服务。

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
机器学习/深度学习 JavaScript PyTorch
9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
生成对抗网络(GAN)的训练效果高度依赖于损失函数的选择。本文介绍了经典GAN损失函数理论,并用PyTorch实现多种变体,包括原始GAN、LS-GAN、WGAN及WGAN-GP等。通过分析其原理与优劣,如LS-GAN提升训练稳定性、WGAN-GP改善图像质量,展示了不同场景下损失函数的设计思路。代码实现覆盖生成器与判别器的核心逻辑,为实际应用提供了重要参考。未来可探索组合优化与自适应设计以提升性能。
1202 7
9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
|
存储 物联网 PyTorch
基于PyTorch的大语言模型微调指南:Torchtune完整教程与代码示例
**Torchtune**是由PyTorch团队开发的一个专门用于LLM微调的库。它旨在简化LLM的微调流程,提供了一系列高级API和预置的最佳实践
868 59
基于PyTorch的大语言模型微调指南:Torchtune完整教程与代码示例
|
10月前
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.0性能优化实战:4种常见代码错误严重拖慢模型
我们将深入探讨图中断(graph breaks)和多图问题对性能的负面影响,并分析PyTorch模型开发中应当避免的常见错误模式。
545 9
|
机器学习/深度学习 PyTorch 算法框架/工具
提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现
本文将深入探讨L1、L2和ElasticNet正则化技术,重点关注其在PyTorch框架中的具体实现。关于这些技术的理论基础,建议读者参考相关理论文献以获得更深入的理解。
390 4
提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现
|
10月前
|
人工智能 自然语言处理 安全
Milvus x n8n :自动化拆解Github文档,零代码构建领域知识智能问答
本文介绍了在构建特定技术领域问答机器人时面临的四大挑战:知识滞后性、信息幻觉、领域术语理解不足和知识库维护成本高。通过结合Milvus向量数据库和n8n低代码平台,提出了一种高效的解决方案。该方案利用Milvus的高性能向量检索和n8n的工作流编排能力,构建了一个可自动更新、精准回答技术问题的智能问答系统,并介绍了部署过程中的可观测性和安全性实现方法。
1224 0
|
10月前
|
存储 人工智能 自然语言处理
让你拥有一个AI大脑,这个32.1k Github项目是你不错的选择,支持PDF、Markdown、代码、视频成为你的知识内容
Quivr 是开源全栈 RAG 平台,助你打造“第二大脑”,支持多文档类型与多种 LLM,实现智能搜索与聊天。具备语义检索、本地部署、隐私保护等功能,适用于个人知识管理与企业知识库,界面简洁易用,是高效智能问答的理想选择。
547 0
|
机器学习/深度学习 数据可视化 机器人
比扩散策略更高效的生成模型:流匹配的理论基础与Pytorch代码实现
扩散模型和流匹配是生成高分辨率数据(如图像和机器人轨迹)的先进技术。扩散模型通过逐步去噪生成数据,其代表应用Stable Diffusion已扩展至机器人学领域形成“扩散策略”。流匹配作为更通用的方法,通过学习时间依赖的速度场将噪声转化为目标分布,适用于图像生成和机器人轨迹生成,且通常以较少资源实现更快生成。 本文深入解析流匹配在图像生成中的应用,核心思想是将图像视为随机变量的实现,并通过速度场将源分布转换为目标分布。文中提供了一维模型训练实例,展示了如何用神经网络学习速度场,以及使用最大均值差异(MMD)改进训练效果。与扩散模型相比,流匹配结构简单,资源需求低,适合多模态分布生成。
1402 13
比扩散策略更高效的生成模型:流匹配的理论基础与Pytorch代码实现
|
机器学习/深度学习 编解码 PyTorch
从零实现基于扩散模型的文本到视频生成系统:技术详解与Pytorch代码实现
本文介绍了一种基于扩散模型的文本到视频生成系统,详细展示了模型架构、训练流程及生成效果。通过3D U-Net结构和多头注意力机制,模型能够根据文本提示生成高质量视频。
634 1
从零实现基于扩散模型的文本到视频生成系统:技术详解与Pytorch代码实现
|
JSON JavaScript API
MCP 实战:用配置与真实代码玩转 GitHub 集成
MCP 实战:用配置与真实代码玩转 GitHub 集成
2603 4

推荐镜像

更多