用谷歌的GPU跑你的代码----Colaboratory使用记录

    Google不愧为大佬,给我们这些小(穷)白(鬼)开放了一个Gpu的端口,让我们的体会了一下GPU的速度。本人亲测,我的代码在我的笔记本上跑了20分钟,但上传到Colaboratory上只需要3分钟就可以给我答案。
但Colaboratory并不是那么简单,我研究了一天,终于找到了一些技巧,特意记录下来。
  Colaboratory是谷歌云盘的一个工具,谷歌官方给出的解释是“Colaboratory是一种数据分析工具,可将文字、代码和代码输出内容合并到一个协作文档中”。其实在我看来就是一个Jupyter Notebook,不过它也不是一个简单的Jupyter Notebook,因为它是在linux系统下,所以我们可以用linux系统命令来控制 Colaboratory。
  一、基本操作

  1.1新建

   Colaboratory新建直接在空白地方右击,新建Colaboratory,如果没有找到选择关联更多应用,搜一下Colaboratory就行。新建完成后直接点击打开就行。


1.2运行模式改为GPU



1.3代码执行

直接在代码单元格里写代码就行,然后点击左边的运行标志,代码就开始执行。

import tensorflow as tf
import numpy as np

with tf.Session():
  input1 = tf.constant(1.0, shape=[2, 3])
  input2 = tf.constant(np.reshape(np.arange(1.0, 7.0, dtype=np.float32), (2, 3)))
  output = tf.add(input1, input2)
  result = output.eval()

result

执行结果


二、上传、下载数据

  由于我们每次打开 Colaboratory都是Google 随机给我们分配一台服务器,所以我们每次的数据都不能保存,所以我们需要掌握如何上传数据和下载数据

  2.1上传数据

  2.1.1网络上数据集

  由于 Colaboratory其实本质上是linux服务器,我们可以通过linux命令来下载数据。但由于在 Colaboratory上,所以我们需要注意 Colaboratory不能直接执行linux命令,我们可以通过在命令前面加上!来执行命令(大部分linux命令在前面加上“!”都能实现),比如我们下载Stanford Dogs数据集,可以通过下面命令:

!wget http://vision.stanford.edu/aditya86/ImageNetDogs/images.tar

执行效果如下:


可以看到文件下载下来啦,我下载下来的是压缩包,利用linux命令来解压就行,只要在命令前加上英文的感叹号就可以执行。

2.1.2本地上传数据

from google.colab import files

uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

files.upload返回上传文件的字典。字典是由文件名键入的,值是上传的数据。

这段代码我没有试过,我也是在无意中看见的,应该可以执行

2.2下载数据

当你的代码执行完成,你需要将你运行后保存的文件(假设你有保存文件),可以通过以下代码来下载数据。

from google.colab import files

with open('123.txt', 'w') as f:
  f.write('some content')

files.download('123.txt')

由于每次都是Google随机给你分配的服务器,所以你每次的数据都无法保存,如果可以的话,你还是把需要的数据及时下载下来。

三、其他

还有一些其他的命令和ipython上可以执行,也可以在Colaboratory执行,下面是我的一些总结

%cd directory 更改工作目录
%pwd 返回系统当前工作目录
%env 以字典形式返回系统环境变量

以上是我目前所用到的Colaboratory相关的知识,后序我将继续更新我的其他学习知识。

注:Colaboratory是在谷歌云盘上的,需要翻墙出去才能使用,所以你需要翻墙才能使用Colaboratory。如果你有能翻墙,那你可以尽情的使用谷歌的GPU,如果你没有翻墙的技术,那我只能说这种事你可以花点钱吗,花点。




猜你喜欢

转载自blog.csdn.net/ssssdbucdbod/article/details/80397808