相信各位看到这篇文章,是因为自己电脑跑神经网络代码太慢了。这里我谈一下我个人经历。前几天我要跑一个tensorflow的项目——官方提供的一个28*28*3的手写数字生成项目。由于我没有配gpu,一个很简单的项目跑了很久都没成功。我开始了探索之路。
-
刚开始我尝试在自己电脑上配置gpu环境,网上配置gpu教程参差不齐,我试了很久也无法成功
-
经同学推荐入手了baidu AI Studio。发现不支持tensorflow框架,百度为了推广自己开源的paddle(和tensor框架类似),只允许在平台上跑paddle代码
-
Google colab救了我。Google colab可以使用gpu跑,总体来说要比我电脑快了将近20倍,写此文章作为分享
以上介绍个人经历,为了给各位跳坑。接下来尽量干货分享。
使用Google colab要求:
-
能 “翻墙”,且翻墙速度够快(才能给你一个更优的体验)
-
拥有Google邮箱账号(能翻墙的话可以自己注册)
-
如果以上两个条件不能满足,以下内容就没必要看了
1 极速开始
https://colab.research.google.com/notebooks/welcome.ipynb
点击进入页面如下:
点击文件->新建笔记本,如下图:
会要求登录Google账号,登录后会出现如下页面。在如下单元格内编辑代码,按shift+enter键就能正常运行。
当然这里也是可以导入tensorflow和keras等神经网络常用库的。
这里科普一下:
-
这种急速开始的方式一旦关闭了这个页面,所有代码以及运行结果全部消失。
这是个不持久的应用方法。
-
Google colab其实是给你分配了一个linux云服务器(如下图所示)。
当然linux服务器是随机分配的,一旦你离开页面结果自然无法保存。
-
所以说这种极速开始是没有意义的,
以下给你介绍更“康”的使用方式。
2 “持久化”使用方式
from google.colab import drive
drive.mount('/content/gdrive')
import os
os.chdir("/content/gdrive/MyDrive/Colab Notebooks")
加入如上代码。如下图显示,下图显示要输入认证码,点击url链接,获取认证码,然后shift+enter按下。
google云盘:
只要有google邮箱账号,就会有google云盘,就是和百度云盘类似的东西。这里解释下,以下内容要用。
上面代码解释:
-
drive.mount('/content/gdrive'),
表示将自己整个google云盘挂载到google随机给我们分配的linux服务器上
-
这样做的好处就是我们编写的代码都会存在google云盘,下次想用数据也好,源代码也好。只要挂载上就能使用上次或者上上次的代码或数据,这不就实现了持久化了
(舒服了舒服了)。
-
你可以比对以下两图。
https://drive.google.com/drive/my-drive
(这个是云盘链接)
-
不要忘记还有一行代码。os.chdir("/content/gdrive/MyDrive/Colab Notebooks")
-
这句代码表示更改运行目录。emmmmmmmmm,有点迷惑是不是?看下图
3 一些重要的使用经验
-
打开了colab就默认加载tensorflow 2.x的版本,如果你想用1版本的tensorflow。
按如下步骤:
-
运行 %tensorflow_version 1.x,出现 TensorFlow 1.x selected. 即成功切换成tensorflow 1版本。一定得先清空变量,否则运行%tensorflow_version 1.x,就没有用
2、使用gpu运行代码。按如下步骤:
-
如下图所示操作即可。运行python代码就会默认使用gpu来运行。下面有个测试速度的官方demo,可以看看。
3、一个测试速度的官方Demo
%tensorflow_version 1.x
import tensorflow as tf
import timeit
device_name = tf.test.gpu_device_name()
if device_name != '/device:GPU:0':
print(
'\n\nThis error most likely means that this notebook is not '
'configured to use a GPU. Change this in Notebook Settings via the '
'command palette (cmd/ctrl-shift-P) or the Edit menu.\n\n')
raise SystemError('GPU device not found')
def cpu():
with tf.device('/cpu:0'):
random_image_cpu = tf.random.normal((100, 100, 100, 3))
net_cpu = tf.keras.layers.Conv2D(32, 7)(random_image_cpu)
return tf.math.reduce_sum(net_cpu)
def gpu():
with tf.device('/device:GPU:0'):
random_image_gpu = tf.random.normal((100, 100, 100, 3))
net_gpu = tf.keras.layers.Conv2D(32, 7)(random_image_gpu)
return tf.math.reduce_sum(net_gpu)
# We run each op once to warm up; see: https://stackoverflow.com/a/45067900
cpu()
gpu()
# Run the op several times.
print('Time (s) to convolve 32x7x7x3 filter over random 100x100x100x3 images '
'(batch x height x width x channel). Sum of ten runs.')
print('CPU (s):')
cpu_time = timeit.timeit('cpu()', number=10, setup="from __main__ import cpu")
print(cpu_time)
print('GPU (s):')
gpu_time = timeit.timeit('gpu()', number=10, setup="from __main__ import gpu")
print(gpu_time)
print('GPU speedup over CPU: {}x'.format(int(cpu_time/gpu_time)))
结果如下:
如有疑惑,以下评论区留言。力所能及,必答之。
本书可作为研究生的教科书和任何计算机毕业生的参考书。它还将为那些想
使用
Python开始其机器学习事业的计算机专业人员提供简单的参考。
本书精确地分为12个章节。每一章都是在几个已实现的概念的帮助下精心编写的。为了确保本书所讨论的每一个Python概念都能在相关命令的帮助下得到解释,并包括输出的截图,我们付出了专门的努力。第1章重点介绍
Google
CO
LAB
提供的开发环境。第2章到第4章介绍了Python语言的基础知识,重点是控制和迭代语句、运算符以及它们在基本程序中的应用。Python采用了混合的编程范式,它是程序性的、面向对象的和功能性的。所有编程语言的最佳部分都在一个平台上。第5章重点介绍Python中的函数,特别强调Lambda函数。第6章和第7章深入介绍了高级Python编程概念,如迭代器、闭包、装饰器、生成器。对异常处理的良好和深入的了解,使我们能够编写出可靠和健壮的代码。为了满足这一需要,第8章介绍了Python中异常处理的突出特点。第9章介绍了通过文件处理的数据持久性。由于正则表达式在模式匹配中的广泛应用,第10章将完全用于理解Python中的正则表达式。第11章总结了
1 先打开下文在线网址,登录谷歌云盘上传自己的文件(文件夹),搞七搞八打开新的,发现可以把co
lab
地址创建到指定位置的文件夹,或者在指定文件夹打开co
lab
网址:https://co
lab
.research.
google
.com/notebooks/welcome.ipynb
2 路径和挂载 第一行这里有个验证码
其实不用chdir的,我是在指定文件夹打开的。getcwd看下路径嘛。。。
有个坑就是要等等才能加载完。。\
注意是MyDrive 中间无空格
对于入门深度学习的同学开说,笔记本
GPU
性能太弱是一件非常让人头疼的事,而租用的
gpu
服务器又太贵,最近刚发现
google
提供的免费云平台,可供我们做训练网络服务器用,
GPU
型号为Tesla T4 ,性能也是不俗。
首先,登陆
Google
Driver
然后,在空白处右击,查看是否有
Google
Co
lab
oratory,没有的话,点击关联更多应用,搜索安装即可
新建一个文件夹,这里是yolo_v1
将你的工程文件导入
接下来新建一个Co
lab
oratory,并且命名为yolo_train
很熟悉的jupyter notebook界面,操作很相似…
然后点击左上角“修改”–>>”笔
Google
co
lab
是一个免费的 Jupyter 笔记本环境,不需要进行任何设置就可以
使用
,并且完全在云端运行。并且可以免费
使用
Google
的
GPU
(Tesla K80)
Google
co
lab
可以将你的Jupyter 笔记本存储在当中,借助
Google
co
lab
,可以在云端编写和执行代码、保存和共享分析结果,以及利用强大的计算资源,所有这些都可通过浏览器免费
使用
。
Google
Co
lab
是一个基于云端的免费Jupyter笔记本环境,可供用户创建、分享、运行Python代码和机器学习模型。
Google
Co
lab
是一个免费的基于云端的Jupyter笔记本环境,由
Google
提供。它提供了一个方便的平台,
使用
户可以创建、分享和协作编写Python代码和机器学习模型。
1.1在谷歌云盘上创建文件夹
当登录账号进入谷歌云盘时,系统会给予15G免费空间大小。由于Co
lab
需要依靠谷歌云盘,故需要在云盘上新建一个文件夹。比如,我建立一个名为m...
使用
co
lab
平台训练自己的模型
Co
lab
平台
使用
(
GPU
、挂载、tf
版本
、运行py脚本、设置点击脚本)
Google
Co
lab
Tips for Power Users
20种小技巧,玩转
Google
Co
lab
Google
Co
lab
训练数据集
教程
Co
lab
:Pytorch训练模型
二、重要说明
一定要先注意选取运行环境,否则后面的工作白做了;
在co
lab
上生成的文件都是临时的,我们需要保存的话,务必及时下载到本地,右键想要下载的文件即可;
co
lab
最长连接时间只有12个小时