4月份跟同学在天池做了一个 FashionAi的比赛,由于没有自己的服务器,只能去隔壁实验室借用服务器,在每天晚上简单跑一跑训练,测试模型的机会都不多,更不要提调参。最终比赛也是不了了之。
当时也有考虑租用服务器,但是价格有点高,不是我辈屌丝能够承受,所以也没有多了解。前不久偶然发现google cloud platform 可以免费试用,ML engine 更是可以免费适用,简直是我辈福音,于是试用了一下,感觉还不错。在学习使用的过程中,查找到的资料很有限,官方文档写的十分详细,但是感觉有些繁琐;火山岩上的小红花的博客写的十分详细,尤其在gcp的配置和训练任务的提交方面。因此本次就不再就gcp配置上进行赘述,而是就训练任务的提交上以案例——mnist手写数字识别——为例进行描述,帮助刚入坑的小白进行理解,同时解决了两个常见的问题。
前言
在使用之前首先要确保:
1. 完成了谷歌云项目的配置。
2. 付款账号的建立和绑定和费用支付
3. ML Engine API的设置和启用
4. 凭据的设置
5. cloud sdk的下载和初始化
等一系列的gcp的配置和初始化操作,详细步骤可以参考火山岩上的小红花的博客,里面写的非常细致。
在此项目中,我们主要调用了gcp的两个服务,一个是谷歌云提供的云储存服务,用于保存训练数据,网络模型及参数,预测数据和预测结果等文件。另一个是Machine Learning Machine 用于对提交的训练任务进行训练。
建立用于存储数据和模型的bucket
每个用户都可以建立多个项目,每个项目中均可以建立多个存储分区,即bucket,在bucket中可以存放用于读写的各类文件。
首先在首页中点击左上角的导航菜单,选择:存储——浏览器,在打开的浏览器界面中可以看到你现在所有的所有bucket,点击创建存储分区。
为bucket命名为mnist_mine,在regional中选择us-east1,因为这个区域的价格较低而且还可以使用gpu。所以我们在google platform 上就拥有了一个存储空间:gs://mnist_mine 用于存储mnist训练过程中需要的训练数据和训练出的结果和模型。
这时我们可以通过shell 或者sdk使用命令gsutil 系列命令对该bucket进行操作例如:
gsutil cp filename gs://mnist_mine
训练数据的获取
由于在keras的数据库中有mnist的包,我们可以直接调用,在云端下载,无需手动导入训练数据。
from k