前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实战 Google Colab,一起用 GPU

实战 Google Colab,一起用 GPU

作者头像
周萝卜
发布2019-07-17 16:30:11
4K0
发布2019-07-17 16:30:11
举报
文章被收录于专栏:萝卜大杂烩萝卜大杂烩

今天一起来看看尝试下 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 服务安装好之后,使用如下命令拉取镜像

代码语言:javascript
复制
1docker pull tensorflow/tensorflow:1.13.1-py3

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

下面用如下命令启动 docker

代码语言:javascript
复制
1docker run --name my-tensorflow -it -p 8888:8888 -v ~/tensorflow:/test/data tensorflow/tensorflow

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

二、编写 Flask 服务

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

代码语言:javascript
复制
 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 服务

代码语言:javascript
复制
 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 端口来作为监听端口,最后的效果如下:

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萝卜大杂烩 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初识 Google Colab
  • 连接自己的 Google 云盘
  • 从 Colab 下载文件
  • 实战训练电影推荐模型
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档