Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >google cloud :穷人也能玩深度学习

google cloud :穷人也能玩深度学习

原创
作者头像
张鹏宇
发布于 2017-09-28 06:35:56
发布于 2017-09-28 06:35:56
19K00
代码可运行
举报
文章被收录于专栏:张鹏宇的专栏张鹏宇的专栏
运行总次数:0
代码可运行

导语: 想玩深度学习但是没钱更新电脑配置怎么办?google cloud,只要1美元,只要1美元,300美元赠金带回家!365天免费使用,让你轻松入门深度学习!是的,你没有听错,只要1美元,只要1美元,买1赠300,还在犹豫什么,机不可失,失不再来,赶紧掏出你的电脑抢购吧!

背景

由于深度学习计算量大,常常会遇到一个训练跑几小时甚至1天多的情况。一段时间后,你肯定会有升级电脑的想法。而其中很重要的一块是gpu运算需要一块好显卡。

但是当我看看价钱,再看看信用卡账单,我觉得人穷还是应该多忍忍。

我以前还不幸上了农企的船,而目前主流的深度学习框架都是使用cuda,用opencl的速度大部分时候比直接跑cpu还慢。所以如果看完后有同学觉得自己装机更方便的话记住不要买amd的显卡(当然好像土豪也不会买amd的显卡...),另外不差钱的推荐上双TITAN X

介绍

前段时间听richardcliu介绍,google cloud现在有优惠,充值1美元赠送300美元,最多可使用1年。用了之后觉得价格挺公道的。

google cloud有专门的ml-engine(machine learning engine)模块,可以直接用来跑tensorflow,不用像虚拟机一样开关机。只需要根据需要指定配置就行。收费分为训练收费和预测收费两种:

这里意思是如果进行模型训练,那么每个训练单位1小时0.49美元(美国服务器)。有5中配置可供选择(具体介绍),每种占用的训练单位不同。比如如果选用STANDARD_1就是1小时4.9美元。如果是执行预测任务是每1000次预测0.1美元,plus会员按每小时0.4美元收费(升级plus不要钱,就是会在帐号没钱的时候自动扣信用卡的钱)。

使用google cloud有个好处就是完全不占用本地电脑资源,需要跑的时候扔个命令让google cloud跑就是,而且不阻塞自己的其它任何工作。跑的过程中生成的数据全部都会存储在存储分区中。

安装和配置

以mac安装做说明,包括之后的示例也以mac为准。

1.安装python 2.7,gcloud目前只支持python2.x。

2.更新pip

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install -U pip

如果安装的tensorflow不是基于python2.7的,那么再安装一个基于python 2.7的tensorflow

tensorflow 1.3之后的版本tensorboard和tensorflow分开了,写这篇文章的时候刚把tensorflow从1.2.1更新到了1.3,独立的tensorboard一直跑不了,就先用1.2.1版本说明好了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install tensorflow==1.2.1

这个版本的tensorflow不是用来跑代码的,是用来之后把代码提交到google cloud运行前检查语法的。

3.下载google cloud sdk并解压

4.安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sh ./google-cloud-sdk/install.sh

5.配置ml-engine。

a.创建一个新的云平台项目 https://console.cloud.google.com/cloud-resource-manager b.启用付费 https://support.google.com/cloud/answer/6293499#enable-billing c.启用机器学习api https://console.cloud.google.com/flows/enableapi

6.初始化gcloud

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcloud init

然后会提示你登录,确认后会弹出登录页面,然后在弹出的网页选允许

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
To continue, you must log in. Would you like to log in (Y/n)? Y

选择项目,如果只有一个项目会默认帮你选择,选刚才那个创建的云平台项目(注意是填选择序号)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Pick cloud project to use:
 [1] [my-project-1]
 [2] [my-project-2]
 ...
 Please enter your numeric choice:

选择默认区域,建议选us-east1,那里机器便宜,而且在运算时支持gpu

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Which compute zone would you like to use as project default?
 [1] [asia-east1-a]
 [2] [asia-east1-b]
 ...
 [14] Do not use default zone
 Please enter your numeric choice:

全部设置完成后会有提示已经设置完成。

配置完成后可以用gcloud config list查看配置。更加详细的gcloud命令见

https://cloud.google.com/sdk/gcloud/reference/

示例

准备数据

下载示例代码,解压后进入estimator目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd cloudml-samples-master/census/estimator

mkdir data,将数据下载下来放在data里面。

创建存储分区。如果是第一次使用,进入后会有配置引导。

https://console.cloud.google.com/storage/browse

在命令行中设置BUCKET_NAME临时变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BUCKET_NAME="刚刚设置的存储分区"

设置完成后可以通过echo命令查看是否正常设置

设置REGION临时变量。值与刚刚创建BUCKET_NAME的区域相同。我的是us-east1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REGION=us-east1

将data文件夹上传到google cloud

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gsutil cp -r data gs://$BUCKET_NAME/data

设置TRAIN_DATA和EVAL_DATA临时变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TRAIN_DATA=gs://$BUCKET_NAME/data/adult.data.csv
EVAL_DATA=gs://$BUCKET_NAME/data/adult.test.csv

把test.json也上传上去并且设置临时变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gsutil cp ../test.json gs://$BUCKET_NAME/data/test.json
TEST_JSON=gs://$BUCKET_NAME/data/test.json

训练

这时候终于可以跑训练任务了。对于每次训练或者预测,都要取一个专门的名称标识。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JOB_NAME=census_test_1

指定输出地址。就是指定tensorflow代码在训练过程中生成的文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
OUTPUT_PATH=gs://$BUCKET_NAME/$JOB_NAME

下面可以正式开始执行训练了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcloud ml-engine jobs submit training $JOB_NAME \
    --job-dir $OUTPUT_PATH \
    --runtime-version 1.2 \
    --module-name trainer.task \
    --package-path trainer/ \
    --region $REGION \
    --scale-tier STANDARD_1 \
    -- \
    --train-files $TRAIN_DATA \
    --eval-files $EVAL_DATA \
    --train-steps 1000 \
    --verbosity DEBUG  \
    --eval-steps 100

参数比较简单,熟悉tensorflow应该很好理解。scale-tiler参数就是前面说到的执行任务机器配置,一共可以进行5种机器配置。其中custom配置需要自己写一个配置文件,通过加载配置文件来运行,不能直接将配置以命令行参数的方式添加

详细的ml-engine命令参数参考

https://cloud.google.com/sdk/gcloud/reference/ml-engine/

运行完之后会提示运行成功,并且返回当前任务状态。

之后可以随时查看当前任务状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcloud ml-engine jobs describe ${your job name}

也可以进入可视化页面查看,下图是运行结束后的作业截图

也可以随时查看,搜索日志

运行的中间数据存储在存储空间中。

同时google cloud也支持tensorboard,使用很简单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python -m tensorflow.tensorboard --logdir=$OUTPUT_PATH

生成模型

创建临时变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MODEL_NAME=test

创建模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcloud ml-engine models create $MODEL_NAME --regions=$REGION

找到对应的这个时间戳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gsutil ls -r $OUTPUT_PATH/export
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MODEL_BINARIES=$OUTPUT_PATH/export/Servo/{你的时间戳}/

生成模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcloud ml-engine versions create v1 \
--model $MODEL_NAME \
--origin $MODEL_BINARIES \
--runtime-version 1.2

生成的模型也可以直接通过网页查看

https://console.cloud.google.com/mlengine/models

预测

设置预测任务临时变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JOB_NAME=census_test_prediction
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
OUTPUT_PATH=gs://$BUCKET_NAME/$JOB_NAME

进行预测

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gcloud ml-engine jobs submit prediction $JOB_NAME \
--model $MODEL_NAME \
--version v1 \
--data-format TEXT \
--region $REGION \
--input-paths $TEST_JSON \
--output-path $OUTPUT_PATH/predictions

与训练任务类似,预测任务也可以查看任务的执行情况,日志以及返回数据。

执行完成后可以查看预测结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gsutil cat $OUTPUT_PATH/predictions/prediction.results-00000-of-00001

总结

google cloud对于自家的tensorflow支持可以算的上完美。如果学习的是其它深度学习框架则需要使用传统云服务器的方式,开虚拟机去跑任务。不管怎么样,1美元返300美元还是相当有吸引力的。

至于300美元用完之后怎么办,由于google cloud只需要google账号,不需要身份认证,猥琐一点是可以再注册个账号继续使用赠送服务。不过最好还是祝愿看到文章的你我,到那个时候能够有钱自己装机或者直接继续享受google cloud服务。

参考资料:https://cloud.google.com/ml-engine/docs/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AlphaGo Zero代码迟迟不开源,TF等不及自己推了一个
Root 编译自GitHub 量子位 出品 | 公众号 QbitAI TensorFlow官方在GitHub上推了一个AlphaGo Zero的开源代码! 这个叫做Minigo的围棋AI引擎,是一个使用Python语言、在TensorFlow框架实现的基于神经网络的围棋算法。 这个项目确实是受到DeepMind的AlphaGo算法的启发,但TensorFlow官方再三强调这个项目不属于DeepMind,也不是官方正式的AlphaGo项目。 不是行货!不是行货!不是行货! 重要的事情说三遍! DeepMind
量子位
2018/03/21
2.1K0
AlphaGo Zero代码迟迟不开源,TF等不及自己推了一个
GCP 上的人工智能实用指南:第三、四部分
张量处理单元(TPU)是 Google Cloud Platform(GCP)上高性能 AI 应用的基本构建块。 在本节中,我们将重点介绍 GCP 上的 TensorFlow。 本节包含三章。 我们将深入介绍 Cloud TPU,以及如何利用它们来构建重要的 AI 应用。 我们还将通过利用 Cloud TPU 构建预测应用,使用 Cloud ML Engine 实现 TensorFlow 模型。
ApacheCN_飞龙
2023/04/26
7.1K0
AutoML – 用于构建机器学习模型的无代码解决方案
2018年,谷歌推出了云AutoML,引起了广泛关注,是机器学习和人工智能领域最重要的工具之一。在本文中,你将学习“AutoML”,这是一种借助 Google 云 AutoML 构建机器学习模型的无代码解决方案。
磐创AI
2023/08/29
7930
AutoML – 用于构建机器学习模型的无代码解决方案
教程 | 在Cloud ML Engine的TPU上从头训练ResNet
张量处理单元(TPU)是能够大大加快深度学习模型训练速度的硬件加速器。在斯坦福大学进行的独立测试中,在 TPU 上训练的 ResNet-50 模型能够在 ImageNet 数据集上以最快的速度(30 分钟)达到预期的准确率。
机器之心
2018/08/07
1.9K0
教程 | 在Cloud ML Engine的TPU上从头训练ResNet
【干货】TensorFlow协同过滤推荐实战
【导读】本文利用TensorFlow构建了一个用于产品推荐的WALS协同过滤模型。作者从抓取数据开始对模型进行了详细的解读,并且分析了几种推荐中可能隐藏的情况及解决方案。 作者 | Lak Laksh
WZEARW
2018/04/16
3.1K0
【干货】TensorFlow协同过滤推荐实战
Google Earth Engine(Tensorflow深度学习)
本次我们讲一下如何利用colab训练深度学习(Tensorflow)模型,并上传到Google云平台上面。然后我们再通过GEE进行调用,这样我们在GEE上面运行自己的深度学习模型了。
气象学家
2020/06/17
3.3K1
【干货】Batch Normalization: 如何更快地训练深度神经网络
【导读】本文是谷歌机器学习工程师 Chris Rawles 撰写的一篇技术博文,探讨了如何在 TensorFlow 和 tf.keras 上利用 Batch Normalization 加快深度神经网络的训练。我们知道,深度神经网络一般非常复杂,即使是在当前高性能GPU的加持下,要想快速训练深度神经网络依然不容易。Batch Normalization 也许是一个不错的加速方法,本文介绍了它如何帮助解决梯度消失和梯度爆炸问题,并讨论了ReLu激活以及其他激活函数对于抵消梯度消失问题的作用。最后,本文使用Te
WZEARW
2018/04/16
9.7K0
【干货】Batch Normalization: 如何更快地训练深度神经网络
TensorFlow:使用Cloud TPU在30分钟内训练出实时移动对象检测器
是否能够更快地训练和提供对象检测模型?我们已经听到了这种的反馈,在今天我们很高兴地宣布支持训练Cloud TPU上的对象检测模型,模型量化以及并添加了包括RetinaNet和MobileNet改编的RetinaNet在内的新模型。本文将引导你使用迁移学习在Cloud TPU上训练量化的宠物品种检测器。
AiTechYun
2018/07/27
4.1K0
TensorFlow:使用Cloud TPU在30分钟内训练出实时移动对象检测器
OpenAI-人工反馈的深度学习
rl-teacher是“Deep Reinforcement Learning from Human Preferences”的实现。 这个系统允许你教一个强化学习行为的新行为,即: 1. 该行为没有
AiTechYun
2018/03/02
1.6K0
OpenAI-人工反馈的深度学习
kubeflow系列(二):kubeflow组件介绍
为了对kubeflow有个更直观深入的了解,对kubeflow的各组件进行简单的介绍,先从机器学习任务来看kubeflow的的实现。
机械视角
2020/02/11
3.6K0
kubeflow系列(二):kubeflow组件介绍
TensorFlow 1.x 深度学习秘籍:11~14
在本章中,我们将讨论如何将生成对抗网络(GAN)用于深度学习领域,其中关键方法是训练图像生成器来挑战鉴别器,并同时训练鉴别器来改进生成器。 可以将相同的方法应用于不同于图像领域。 另外,我们将讨论变分自编码器。
ApacheCN_飞龙
2023/04/23
1.1K0
TensorFlow 1.x 深度学习秘籍:11~14
一文教你在Colab上使用TPU训练模型
Google Colab免费为TPUs提供实验支持!在本文中,我们将讨论如何在Colab上使用TPU训练模型。具体来说,我们将通过在TPU上训练huggingface transformers库里的BERT来进行文本分类。
磐创AI
2020/09/14
5.8K0
Google发布"强化学习"框架"SEED RL"
本框架是Google发布于ICLR2020顶会上,这两天发布于Google Blog上
深度强化学习实验室
2020/04/07
1.6K0
Google发布"强化学习"框架"SEED RL"
Micronaut:面向未来的微服务和云原生应用框架
原题:MICRONAUT: A JAVA FRAMEWORK FOR THE FUTURE, NOW
yuanyi928
2018/10/23
4.8K0
Micronaut:面向未来的微服务和云原生应用框架
TensorFlow 深度学习概述
作者: 陈迪豪,就职小米科技,深度学习工程师,TensorFlow代码提交者。 TensorFlow深度学习框架 Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow。 与Caffe、Theano、Torch、MXNet等框架相比,TensorFlow在Github上Fork数和Star数都是最多的,而且在图形分类、音频处理、推荐系统和自然语言处理等场景下都有丰富的应用。最近流行的Keras框架底层默认使用Te
IT派
2018/03/29
9860
TensorFlow 深度学习概述
GCP 上的人工智能实用指南:第一、二部分
在本节中,我们将介绍 Google Cloud Platform(GCP)上的无服务器计算基础。 我们还将概述 GCP 上可用的 AI 组件,并向您介绍 GCP 上的各种计算和处理选项。
ApacheCN_飞龙
2023/04/26
17.5K0
TPU使用说明
为了连接到 TPU,我们必须配置一台虚拟机(单独结算)。要注意的是虚拟机和TPU是分别计费的。
marsggbo
2018/10/16
1.5K0
Google Earth Engine(GEE)——TensorFlow支持深度学习等高级机器学习方法(非免费项目)
TensorFlow是一个开源机器学习平台,支持深度学习等高级机器学习方法。本页面介绍了 Earth Engine 中的 TensorFlow 特定功能。尽管 TensorFlow 模型是在 Earth Engine 之外开发和训练的,但 Earth Engine API 提供了以 TFRecord 格式导出训练和测试数据以及以 TFRecord 格式导入/导出图像的方法。有关如何开发管道以将 TensorFlow 与 Earth Engine 中的数据结合使用的更多信息,请参阅 TensorFlow 示例页面。请参阅 TFRecord 页面以了解有关 Earth Engine 如何将数据写入 TFRecord 文件的更多信息。
此星光明
2024/02/02
3670
如何用TensorFlow和Swift写个App识别霉霉?
在很多歌迷眼里,尤其是喜欢乡村音乐的人,“霉霉”Taylor Swift是一位极具辨识度也绝对不能错过的女歌手。在美国硅谷就有一位非常喜欢 Taylor Swift 的程序媛 Sara Robinson,同时她也是位很厉害的 APP 开发者。喜爱之情难以言表,于是利用机器学习技术开发了一款iOS 应用,可以随时随地识别出 Taylor Swift~~~
猿哥
2019/07/25
12.7K0
《Scikit-Learn、Keras与TensorFlow机器学习实用指南(第二版)》第19章 规模化训练和部署TensorFlow模型
有了能做出惊人预测的模型之后,要做什么呢?当然是部署生产了。这只要用模型运行一批数据就成,可能需要写一个脚本让模型每夜都跑着。但是,现实通常会更复杂。系统基础组件都可能需要这个模型用于实时数据,这种情况需要将模型包装成网络服务:这样的话,任何组件都可以通过REST API询问模型。随着时间的推移,你需要用新数据重新训练模型,更新生产版本。必须处理好模型版本,平稳地过渡到新版本,碰到问题的话需要回滚,也许要并行运行多个版本做AB测试。如果产品很成功,你的服务可能每秒会有大量查询,系统必须提升负载能力。提升负载能力的方法之一,是使用TF Serving,通过自己的硬件或通过云服务,比如Google Cloud API平台。TF Serving能高效服务化模型,优雅处理模型过渡,等等。如果使用云平台,还能获得其它功能,比如强大的监督工具。
SeanCheney
2020/02/18
6.8K0
《Scikit-Learn、Keras与TensorFlow机器学习实用指南(第二版)》第19章 规模化训练和部署TensorFlow模型
推荐阅读
相关推荐
AlphaGo Zero代码迟迟不开源,TF等不及自己推了一个
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验