当前位置:   article > 正文

Google colab免费GPU使用教程_colab免费时长

colab免费时长

创建并进入colab

点击进入云端硬盘
或者 + 打开新的标签页,右上角
在这里插入图片描述
进入谷歌硬盘之后右键 => 更多
第一次需要关联colab,更多 => 关联更多应用
关联应用之后 => Google Colaboratory
在这里插入图片描述
关联Colaboratory
在这里插入图片描述

打开一个ipynb文件

如果已经创建过文件
在这里插入图片描述
打开:右键 => 打开方式 => Google Colaboratory
在这里插入图片描述

挂载Google Drive

在Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。
下面的代码调用colab封装好的命令google.colab.drive.mount,将Google Drive挂载到colab的/gdrive,这样就可以在colab上通过访问/gdrive来访问谷歌硬盘。如果想把文件永久保存,就需要使用这个来挂载,然后将文件保存到谷歌硬盘对应的位置,你也可以上传文件到谷歌硬盘,然后通过colab去读取这些文件。有些人说谷歌colab虽然免费,但是也挺坑人的,每次上传半天的文件,下次打开就没了,又要上传一次。其实就是少了这一步而已,自己没把文件保存起来。

from google.colab import drive
drive.mount("/gdrive")
  • 1
  • 2

colab就是一个随机分配的虚拟环境,挂载硬盘之后,其实挺方便的。Google colaboratory文件是一个ipython notebook,文件结尾是.ipynb,跟你本地电脑中的jupyter notebook是一样的,只是Google colaboratory做了更多的扩展,对jupyter notebook是兼容的。我使用的思想就是把Google colaboratory文件当做一个终端,就想在Linux中一样,通过命令行的形式去访问硬盘中的文件。使用命令行可以按照如下方式。

使用命令行

# 单行命令
# 一般的命令都可以在其前面添加!使用,加!是为了区分命令和python代码。
!ls ...
!pwd ...
!wget ...
!curl ...
...
# 特别的是change directory,即cd命令,需要在前面添加%
%cd ...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
# 多行命令
%%bash
ls ...
pwd ...
  • 1
  • 2
  • 3
  • 4

已经介绍完如何在colab使用命令行,那么要如何使用Google Drive呢?

%cd "/gdrive/My Drive/"
  • 1

这样就切换路径到你的谷歌硬盘了,注意这里需要使用引号将路径引起来,应为路径中My Drive中间带有空格,这个名字不是你起的,是谷歌自己起的,不明白谷歌为什么要埋下这个坑。
此时,你可以在当前路径下读取你保存在谷歌硬盘的文件,或者在当前路径保存文件到谷歌硬盘。

谷歌colab的免费GPU每天最多有12小时的使用时间,而且中途会不定时断开连接。

其他常用命令

切换TF

官方文档建议,在谷歌colab上不要随意的改变其环境,上面有自带的TensorFlow 1和TensorFlow 2。默认的TF版本是TF2,如果你需要使用TF1,可以使用以下魔术命令来切换TF的版本。

%tensorflow_version 1.x
  • 1

克隆代码

很多时候会使用到开源的代码库,可以使用下面的命令:

!git clone https://github.com/github/covid19-dashboard.git
  • 1

查看GPU

设置GPU:代码执行程序 -> 更改运行时类型 -> 硬件加速器 -> GPU -> 保存
如果你已经切换了运行时为GPU,那么可以使用以下命令来查看GPU类型和显存:

!/opt/bin/nvidia-smi
  • 1

TensorFlow

import tensorflow as tf
tf.test.is_gpu_available
  • 1
  • 2

Pytorch

import torch
torch.cuda.is_available()
  • 1
  • 2

查看cuda版本

! nvcc --version
  • 1

安装依赖包

!pip install torch
  • 1

内嵌画图

%matplotlib inline
  • 1

下载文件

找到对应的文件链接,不需要下载到本地再去上传,只需要直接下载,文件基本秒下:

!wget http://download.tensorflow.org/models/object_detection/mask_rcnn_inception_v2_coco_2018_01_28.tar.gz
  • 1

解压文件

解压.tar文件到当前路径

如果是.tar.gz结尾就用-xzvf,如果是.tar结尾就用-xvf
!tar -xzvf ../mask_rcnn_inception_v2_coco_2018_01_28.tar.gz
  • 1
  • 2

解压zip包

!unzip datasets.zip
  • 1

编辑文件

当你上传文件或者克隆的文件需要修改某些参数时,colab上可以添加插件来编辑py文件或者txt等文件,但是目前的插件基本不太友好,广告多,界面小,保存有延时,所以介绍一种个人比较常用的方式。
假设已有文件test.py

!cat test.py
  • 1

然后复制输出

%%writefile test.py
将文件内容输出粘贴到此处
  • 1
  • 2

运行文件

!python test.py
  • 1

opencv cv2.imshow

使用cv2_imshow()代替cv2.imshow()

from google.colab.patches import cv2_imshow
!curl -o logo.png https://colab.research.google.com/img/colab_favicon_256px.png
import cv2
img = cv2.imread('logo.png', cv2.IMREAD_UNCHANGED)
cv2_imshow(img)
  • 1
  • 2
  • 3
  • 4
  • 5

重新连接

colab上使用时间过长,则会断开连接,需要及时重连,有时候训练模型,需要几个小时,不可能一直盯着,那么可以在训练之前,运行以下代码,模拟每隔一个小时点击以下右上角的重连,参考

# 经过测试,这种方式会一直在console报错,而且文档重新加载时依旧会运行,即使使用IPython.clear_output()也无法清除,还是不建议使用
# 报错:Uncaught TypeError: Cannot read property 'shadowRoot' of null
"""
import IPython
js_code = '''
function ConnectButton(){
    console.log("Connect pushed"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() 
}
setInterval(ConnectButton,60000);
'''
display(IPython.display.Javascript(js_code))
"""
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

按F12打开开发者工具,然后将下面代码复制到console:

var hour = 10;
var count = 0;
function ConnectButton(){ 
count++;
if ((count)%(6*60*hour)==0){
console.log("time out!");
clearInterval(stop)}
if (document.querySelector("paper-button#ok")){ document.querySelector("paper-button#ok").click(); console.log("click OK button!"); }
document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect-icon").click()
console.log("click Connect button!"); } 
var stop = setInterval(ConnectButton,10000);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

后续继续补充


其实旷世的MegStudio也是类似的,甚至我觉得界面还更加人性化,因为我们的浏览器一般都是横向长,纵向短,如果把很多界面设置都安排在垂直方向,那能代码区域就显得矮肥,代码又看不了几行,而右边一般都是空置着的。而MegStudio就很好利用了横向的空间。估计是其开发人员也深知这个痛点吧。

Tensorflow with GPU:Colab GPU大概是CPU的35倍。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/780370
推荐阅读
相关标签
  

闽ICP备14008679号