前往小程序,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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WASM 将引领下一代计算范式!
WebAssembly 是一种新兴的网页虚拟机标准,它的设计目标包括:高可移植性、高安全性、高效率(包括载入效率和运行效率)、尽可能小的程序体积。2018 年 WebAssembly 第一个规范草案诞生,2019 年成为 W3C 第四个标准语言。到了 2022 年底,WebAssembly 现在怎么样了 ...
米开朗基杨
2022/11/07
1.3K0
WASM 将引领下一代计算范式!
一个白学家眼里的 WebAssembly
作者:doodlewind | 花名雪碧 | github.com/doodlewind
ConardLi
2020/02/20
1.6K0
一个白学家眼里的 WebAssembly
浅谈web前端的发展趋势
相信web前端开发的伙伴们,在职业道路上,十有八九会受到这样的质疑或者嘲讽(大多数其实还是调侃之意)。写几个标签,懂一些HTML CSS 就是程序员? 你们知道CPU、存储、网络、集群吗? 你们了解过并发、业务架构、数据库、性能调优、分布式计算、集群架构、容灾、安全、运维吗
用户2356368
2019/04/03
1.8K0
浅谈web前端的发展趋势
临界Hashgard:读懂智能合约与虚拟机,看这一篇就够了!
本次,临界 (Hashgard) 旗下的研究机构Hashgard Labs与BKFUND研究院共同完成了一篇研究报告,对虚拟机进行了深度分析。
区块链观察
2019/07/15
2K0
Istio实战——wasm 构建及使用
  上一篇大概介绍了istio引入了wasm以及wasm的简史介绍。虽然引入了一些知识引导读者了解一下它的简单特性,但是还有些欠缺,这里要打个补丁。详细阐述一下 wasm 构建及使用的相关知识。
秦始皇2.0
2020/04/08
4K1
生来取代Docker、JS,谷歌力推,这项技术发布7年后,现状如何?
“如果2008年的时候,WASM 和 WASI(WebAssembly System Interface, WASM 系统接口)这两个东西已经存在了的话,我们就
腾讯云开发者
2024/03/07
7313
生来取代Docker、JS,谷歌力推,这项技术发布7年后,现状如何?
解读编程语言的2021:Go与Rust走向「成熟」,Kotlin、wasm、Julia「无限生长」
本文是“2021 InfoQ 年度技术盘点与展望”系列文章之一,由 InfoQ 编辑部制作呈现,重点聚焦编程语言领域在 2021 年的重要进展、动态,希望能帮助你准确把握 2021 年编程语言领域的核心发展脉络,在行业内始终保持足够的技术敏锐度。 “InfoQ 年度技术盘点与展望”是 InfoQ 全年最重要的内容选题之一,将涵盖架构、AI、大数据、大前端、云计算、数据库、中间件、操作系统、开源、编程语言十大领域,后续将聚合延展成专题、迷你书、直播周、合集页面,在 InfoQ 媒体矩阵陆续放出,欢迎大家持续关注。 特此感谢 · 阿里云程序语言与编译器团队负责人 李三红 · Go 语言编程专家 郝林 · Julia 社区核心成员 田俊、陈久宁 · 独立咨询顾问 /《Rust 编程之道》作者 张汉东 · JetBrains 技术专家 / 布道师 范圣佑 · 英特尔高级技术经理 王鑫 对本文的贡献。 他们都以直接或间接的形式,参与建设该篇文章,部分内容还以特别策划的形式独立成文,出现在盘点合集中。可以说,他们的真知灼见,是该盘点能与大家见面的关键。
深度学习与Python
2022/03/22
1.2K0
解读编程语言的2021:Go与Rust走向「成熟」,Kotlin、wasm、Julia「无限生长」
十年磨一剑!万字长文剖析华为方舟编译器的前世今生
2017年5月的一个凌晨,华为某实验室里,方舟编译器上第一个Java程序“Hello, World”跑通了。
新智元
2019/08/09
1.4K0
十年磨一剑!万字长文剖析华为方舟编译器的前世今生
2019TLC大会精彩回顾—大前端·信息流
2019年8月17日,第三届TLC大会在科兴科学园国际会议中心完美落下帷幕。作为一年一度的技术盛会,本次大会云集国内外19名技术专家,现场参会人数超过600人,线上直播(腾讯直播)人气6000+。宣传覆盖40+媒体及技术平台,线上曝光10w+,社区全覆盖。
腾讯IVWEB团队
2019/09/04
4K1
第一编程语言?Java会一直牛逼下去?
链接:cnblogs.com/misterchaos/archive/2020/04/06/12650643.html
开发者技术前线
2020/11/24
1.1K0
第一编程语言?Java会一直牛逼下去?
从大前端“穿越”到终端,开发者应该必备什么技能? | 解读终端的 2022
采访嘉宾 | 郭虹宇(弘禹)、舒文亮(舒文) 编辑 | 闫园园 本文是 “2022 InfoQ 年度技术盘点与展望” 系列文章之一,由 InfoQ 编辑部制作呈现,重点聚焦终端领域在 2022 年的重要进展、动态,希望能帮助你准确把握 2022 年终端领域的核心发展脉络,在行业内始终保持足够的技术敏锐度。 “InfoQ 年度技术盘点与展望”是 InfoQ 全年最重要的内容选题之一,将涵盖操作系统、数据库、AI、大数据、云原生、架构、大前端、编程语言、开源安全、数字化十大方向,后续将聚合延展成专题、
深度学习与Python
2023/03/29
5390
从大前端“穿越”到终端,开发者应该必备什么技能? | 解读终端的 2022
从 JS 到全生态,云原生时代下的前端成长演进之路 |展望前端工程师的 2023
前几年,我们开玩笑说“前端一天一个新框架”、“前端难度 18 个月翻一番”,虽然现在这个领域经过蓬勃发展已逐渐进入成熟期,但新一代的技术也正在悄然孕育与布局。那么 2022 年,前端领域发生了哪些值得关注的事情?未来前端开发需要具备哪些技能?哪些新兴趋势需要我们掌握? 1 月 11 日,我们邀请到了字节跳动云原生 PaaS 资深前端工程师黄健,一起展望前端研发工程师的 2023。本文经过编辑处理,完整原版视频可参看:https://www.infoq.cn/video/HvDdiQutbkVeQQ3B8ysT
深度学习与Python
2023/02/10
9810
从 JS 到全生态,云原生时代下的前端成长演进之路 |展望前端工程师的 2023
字节跳动现象级 App 十年成长史,移动端基础建设与组织演进之路 | 卓越技术团队访谈录
采访嘉宾 | 孙念、杨萍 采访 | Tina、闫园园 编辑 | 闫园园 2012 年,字节跳动成立,到今年,正好是它的第十个年头。虽然在年龄上,这家公司还非常年轻,但从影响力上来看,它早已成长为移动互联网时代的新兴势力。 现在外界给它贴上了很多标签,其中令人印象深刻的无外乎:庞大、低调。的确,字节跳动鲜有发声,这也使得它与一众互联网巨头相比,多了几分神秘的色彩。不过,如果要探寻字节成功的原因,创始人张一鸣的一句话或许能成为答案: 字节跳动的核心竞争力,直接来说是我们的产品,产品背后是我们的技术系统
深度学习与Python
2023/03/29
1.1K0
字节跳动现象级 App 十年成长史,移动端基础建设与组织演进之路 | 卓越技术团队访谈录
2023前端技术盘点与2024技术展望
● 首先在被誉为大模型元年的今年,大模型的应用能力持续完善,并逐渐开始在前端多个领域中落地。
腾讯技术工程官方号
2024/01/24
1.7K0
2023前端技术盘点与2024技术展望
编程语言大战2024:Python领跑,Java保持稳定,Rust崛起
2024年,Python巩固了其在AI领域的统治地位,Java证明了其在企业领域的持久影响力,而Rust在内存安全编程方面也取得了进展,这标志着全球三大领先编程语言具有变革性的一年。
云云众生s
2024/12/31
1480
SiFive获1.75亿美元融资,成为RISC-V芯片阵营首个“独角兽”| 镁客网每周硬科技领域投融资汇总(3.12-3.18)
RISC-V 创始人于六年前创立了 SiFive,通过向世界介绍开放标准指令集架构(Open Standard ISA),其有望改变未来的计算市场格局。 作者 | 来自镁客星球的波点 本周硬科技领域投融资事件一共60起,人工智能领域发生34起融资事件,占比57%;半导体领域发生11起融资事件,占比18%;生物医药领域发生10起融资事件,占比17%;新能源领域发生4起融资事件,占比7%;区块链领域发生1起融资事件,占比1%。 近日,美国知名RISC-V芯片设计厂商SiFive 3月16日宣布获得Coatue
镁客网
2022/03/21
1.1K0
穿越时空:2023年前端技术盘点与2024年技术展望
在过去的时间里,前端技术稳步前行,2023 虽然没有出现革命性的技术,但在语言与标准、主流框架完善、WASM、音视频等核心场景下都有了亮眼的进步。腾讯云开发者公众号特此与腾讯 MoonWebTeam 前端团队策划了本期前端 2023 技术回顾与 2024 技术展望,希望能给业界带来一些输入与启发。读完全文还可以参加惊喜活动抽奖哦!
腾讯云开发者
2024/01/16
5.9K2
穿越时空:2023年前端技术盘点与2024年技术展望
【五万言】Rust 2022 生态版图调研报告(下)
去年我写了 2021 年 Rust 生态版图调研报告 | 星辰大海(上)[1] 和 (下)[2] ,大家能看到 Rust 在各个行业领域中开始暂露头角。2022 年,在政治动荡、经济下行和疫情肆虐的世界大环境下,Rust 却迎来了高质量的发展。2022 年,我愿称之为 Rust 发展元年。
张汉东
2023/03/06
3.1K0
【五万言】Rust 2022 生态版图调研报告(下)
下暴雨出不了门?这有27部优秀的黑客纪录片
按要求转载自FreeBuf (FreeBuf.COM) 编译 | secist 据说,帝都在22号~23号,即将迎来这几年又一次超强降水!这个刷爆朋友圈的天气消息令小编诚惶诚恐,然后仔细思索,我到底是不去上班呢,还是不去上班呢,还是不去上班呢……在这等待狂风暴雨来袭的激动时刻,送上一篮子黑客主题的电影!小伙伴们,约起来看吧! 在多数人眼中,黑客通常是一群无聊至极没有什么趣味的人,在他们的世界里仿佛只有计算机和那敲不完的代码。但事实真的如此吗?让我们回味一下看《黑客帝国》、《幽灵》等黑客题材电影时的场景。有木
大数据文摘
2018/05/24
1.7K0
ROS机器人高效编程(原书第3版)勘误、问题及资料汇总
补充一行代码装ROS,适用于14.04LTS(indigo)和16.04LTS(Kinetic):
zhangrelay
2019/01/23
9850
推荐阅读
相关推荐
WASM 将引领下一代计算范式!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验