Google colab使用之手把手教学

14 篇文章 1 订阅
14 篇文章 1 订阅

目录

0 前言

1 极速开始

2 “持久化”使用方式

3 一些重要的使用经验

       1、使用tensorflow第一版本

       2、跑gpu

       3、一个测试速度的官方Demo


0 前言

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

结果如下:

 如有疑惑,以下评论区留言。力所能及,必答之。

  • 11
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值