相信各位看到这篇文章,是因为自己电脑跑神经网络代码太慢了。这里我谈一下我个人经历。前几天我要跑一个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 一些重要的使用经验

  1. 打开了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个小时