实战 Google Colab,一起用 GPU

简介: 实战 Google Colab,一起用 GPU

今天一起来看看尝试下 Google Colab 工具,一款由 Google 出品,免费面向大众的、可使用 GPU、TPU 来训练模型的给力在线工具!!

初识 Google Colab

首先,你需要有一个 Google 账号,然后访问下面的网址,登陆谷歌账号即可。

https://colab.research.google.com/notebooks/welcome.ipynb

(可能某些小伙伴需要梯子,不过相信这些都难不倒勇于探索的你。)

Google Colab 是基于 Jupyter 编辑器的云端运行环境,意味着我们可以共享代码给其他人共同享用。

打开 Colab 页面后,我们可以自己创建一个 Python 记事本,当然也可以上传在本地写好的 ipynb 或 py 文件,具体如下图:

然后我们点击 “代码执行程序” 标签页,选择 “更改运行时类型”,就会弹出笔记本设置框,这里就可以选择是否使用 GPU 还是 TPU 或是不使用任何,看到这里,是不是瞬间感觉自己富有了很多,毕竟由 GPU 可以使用了啊!

连接自己的 Google 云盘

首先,你应该已经有了一个 Google 账号。

在新创建的 Jupyter 记事本中,输入如下的代码,并运行,结果如下:

这是出现了一个链接,点击该链接,授权账号登陆,将授权码复制并粘贴到图中的输入框中。

接下来肯能会需要第二次授权,同样的操作。

之后,挂载 Google Drive

就像在真实的 Linux 操作系统上一样(其实 Colab 就是一个真实的 Linux 虚拟机),创建 drive 文件夹,并挂载

最后我们验证下,看看是否成功连接到自己的 Google 云盘了

查看 drive 文件夹,可以看到里面就是自己云盘上已经放置的文件。

从 Colab 下载文件

既然我们准备用 Colab 来训练模型,那么训练好的模型肯定是要保存在自己本地的,因为 Colab 为我们分配的虚拟机资源,一段时间就会回收。

其实不用慌,Colab 肯定也是提供了方便的下载途径的。

WAY 1.点开左侧的箭头按钮,选择文件 tab 页,就可以看到当前虚拟机下的所有文件,如:

我们选择 adc.json,右击选择 “下载”,就能通过浏览器下载该文件了

WAY 2.使用 Google Colab 提供的 API,其中有 files 这个库,直接使用 download 方法来下载

实战训练电影推荐模型

这里使用开源的项目:https://github.com/chengstone/movie_recommender

下载项目中的 movie_recommender.ipynb 文件,导入到 Colab 中,然后一步步的执行,等待模型训练好后,下载到本地即可。不得不说,使用 GPU,模型训练的就是快!

训练好模型后,当然时部署成服务,供自己学(装)习(逼)了,开干。

一、使用 Docker 安装 tensorflow

我使用的是 CentOS 服务器,具体的安装方法直接参考这里

https://www.runoob.com/docker/centos-docker-install.html

Docker 服务安装好之后,使用如下命令拉取镜像

1docker pull tensorflow/tensorflow:1.13.1-py3

至于为什么用 1.13.1 版本,因为 Google Colab 里默认的版本就是这个,所以这里就使用相同的版本了,为了避免发生一些未知的版本匹配问题。

下面用如下命令启动 docker

1docker run --name my-tensorflow -it -p 8888:8888 -v ~/tensorflow:/test/data tensorflow/tensorflow

将 Docker 容器中的 8888 端口映射到宿主机的 8888 端口上,这样,我们就能在外部访问容器中的 8888 端口服务了。

二、编写 Flask 服务

相关的推荐逻辑,都是按照这个开源项目已经提供好的,我们只有保证让 Flask 服务启动在 8888 端口即可,部分代码如下:

1@app.route('/sametypemovie/<int:movieid>', methods=['GET'])
 2def sametypemovie(movieid):
 3    data = recommend_same_type_movie(movieid)
 4    return jsonify(data), 200
 5
 6
 7@app.route('/yourfavmovie/<int:userid>', methods=['GET'])
 8def yourfavmovie(userid):
 9    data = recommend_your_favorite_movie(userid)
10    return jsonify(data), 200
11
12
13@app.route('/otherfavmovie/<int:movieid>', methods=['GET'])
14def otherfavmovie(movieid):
15    data = recommend_other_favorite_movie(movieid)
16    return jsonify(data), 200
17
18
19if __name__ == "__main__":
20    app.run(host='0.0.0.0', debug=True, port='8888')

三、部署上线并测试

将代码上传至宿主机的 /root/tensorflow 目录下,然后进入 docker 容器内,启动 flask 服务

1root@bb09aa2a7097:/test/data# python movie_recommender.py 
 2 * Serving Flask app "movie_recommender" (lazy loading)
 3 * Environment: production
 4   WARNING: Do not use the development server in a production environment.
 5   Use a production WSGI server instead.
 6 * Debug mode: on
 7 * Running on http://0.0.0.0:8888/ (Press CTRL+C to quit)
 8 * Restarting with stat
 9 * Debugger is active!
10 * Debugger PIN: 326-836-556

在浏览器中输入如下:

服务正常,后面再优化下部署方式,是不是就可以线上使用了呢。

四、Nginx 部署

这里使用 Nginx 来部署,因为服务器上还运行着其他的服务,所以就选用了 8880 端口来作为监听端口,最后的效果如下:

到这里,只想说一句,真香!!


相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
2月前
|
人工智能 并行计算 PyTorch
【PyTorch&TensorBoard实战】GPU与CPU的计算速度对比(附代码)
【PyTorch&TensorBoard实战】GPU与CPU的计算速度对比(附代码)
47 0
|
5月前
|
机器学习/深度学习 异构计算 Python
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
对于深度学习初学者来说,JupyterNoteBook的脚本运行形式显然更加友好,依托Python语言的跨平台特性,JupyterNoteBook既可以在本地线下环境运行,也可以在线上服务器上运行。GoogleColab作为免费GPU算力平台的执牛耳者,更是让JupyterNoteBook的脚本运行形式如虎添翼。 本次我们利用Bert-vits2的最终版Bert-vits2-v2.3和JupyterNoteBook的脚本来复刻生化危机6的人气角色艾达王(ada wong)。
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
|
2月前
|
机器学习/深度学习 并行计算 PyTorch
【多GPU炼丹-绝对有用】PyTorch多GPU并行训练:深度解析与实战代码指南
本文介绍了PyTorch中利用多GPU进行深度学习的三种策略:数据并行、模型并行和两者结合。通过`DataParallel`实现数据拆分、模型不拆分,将数据批次在不同GPU上处理;数据不拆分、模型拆分则将模型组件分配到不同GPU,适用于复杂模型;数据和模型都拆分,适合大型模型,使用`DistributedDataParallel`结合`torch.distributed`进行分布式训练。代码示例展示了如何在实践中应用这些策略。
64 2
【多GPU炼丹-绝对有用】PyTorch多GPU并行训练:深度解析与实战代码指南
|
2月前
|
运维 监控 Serverless
一键开启 GPU 闲置模式,基于函数计算低成本部署 Google Gemma 模型服务
本文介绍如何使用函数计算 GPU 实例闲置模式低成本、快速的部署 Google Gemma 模型服务。
164787 57
|
3月前
|
API Go 网络架构
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
90 4
|
3月前
|
机器学习/深度学习 存储 人工智能
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
73 3
|
3月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
559 0
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
3月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
27 0
|
3月前
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
45 0
|
3月前
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
49 0

热门文章

最新文章