记一次薅google的colab羊毛——免费使用的GPU

时间:2024-05-23 14:25:59

最近参加了个比赛,需要进行深度学习中U-Net模型的训练,数据量比较大,刚开始在自己的笔记本上训练,99%的内存和CPU占用.....完全做不了其他的事情,而且还需要8个钟以上的时间....后来搜索了解到了google的colab有免费的GPU可以使用。就肯定使用啦~使用后发现,本来需要8个多钟的训练时间活生生被减少到30-40分钟...GPU真的牛了。

colab一般和google硬盘是一起使用的,将数据放在google硬盘中,挂载到对应的.ipynb笔记本中,在对应的.ipynb笔记本中就可以使用挂载的硬盘了。
对于.ipynb笔记本而言,google是分配了一个虚拟机给你的,你所做的在这台虚拟机之上。
(注意:分配的虚拟机有最长使用时间的规定,长期处于空闲状态也会被回收的)

网址:https://colab.research.google.com/
打开之后,可以先自己建立一个新的.ipynb笔记本:文件=》新建python3记事本。

然后由于改变硬件的时候,挂载的硬盘可能会失效,因此我们先选择对应的硬件:修改=》笔记本设置=》硬件加速器,我们选择 GPU(在这里,CPU和GPU下运行的代码是一样的。但是TPU的话,则需要对代码进行修改)

现在我们来挂载google硬盘:在一个代码单元格中输入以下代码:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

运行后,先后会出现两个链接,需要我们点击并授权,然后获得 授权码。

记一次薅google的colab羊毛——免费使用的GPU


两个空格填写好之后,我们新开一个代码单元格,输入以下代码并运行:

!mkdir -p drive
!google-drive-ocamlfuse drive

                                                   记一次薅google的colab羊毛——免费使用的GPU

这样子,Google云盘的文件就都放在 drive这一个文件夹之下了。(一般我会将.ipynb文件放在在训练的文件的文件夹之下,这样子,选择或者切换目录比较方便一些。)

这样子并还没有完全好,在训练的代码中的最上面还需要import一下:

from drive.taidi import *

#测试当前目录是在哪里
print("os_dir:",os.getcwd())
preDir="drive/taidi/"
if (os.getcwd())!="/content/drive/taidi":
   os.chdir(preDir)#改变当前目录
print(os.getcwd())

设置好文件的位置之后,就可以将代码放到这下面来运行了(在同一个单元格中)。

这是运行时的输出框:

记一次薅google的colab羊毛——免费使用的GPU

如有错误,敬请批评指正,谢谢。