因为colab是谷歌旗下的云计算,所以如果没有梯子的小伙伴在点完赞后就可以退出去了(不会吧,不会吧,这年头还有人没有梯子/doge)
colab的直达车https://colab.research.google.com/notebooks/intro.ipynb
这里先讲用colab:
在谷歌云盘上上传你的训练集和代码。
from google.colab import drive
drive.mount("/content/drive")
在新添加的代码块中运行,然后点链接,经过一系列授权之后将授权码复制进下面的小框框然后回车,这样你的colab就可以访问谷歌云盘上的文件。
import os
path="/content/drive/My Drive/U2_net"
os.chdir(path)
!python Ra_trian.py //注意colab中执行命令前要加!
其中My Drive 就是谷歌云盘,U2_net就是你们要改的地方。。。
24小时刷新一次,什么时候开始用,什么时候算刷新的起点。
谷歌云盘可以使用GPU ,TPU,CPU(默认)跑代码。似乎三种跑起来的流量是不同的。
你可以购买谷歌的colab Pro 。这样你的流量会比平常多,而且GPU的算力也比较强。但是请注意,不是无限流量。
用CPU好像可以挂12h。Pro 的CPU好像可以挂24h。
请注意,只要这里不是显示“”重新连接”,那就说明你现在在使用colab,会消耗你的流量,建议直接通过管理会话终止。不太清楚直接关掉会不会断掉连接(好像也会接着连一会儿。。。如果有人亲测了可以告诉我一下。。)
如果报错显示显存不足,你可以通过调整batch_size来降低你显存的需求量。。
显存不足:
一般情况下,colab跑神经网络的第一个epoch都需要加载数据集,只要等第一个epoch过了之后,就开始快了。
有的人要用colab Pro,但是并没有购买的渠道,我是在某宝上进行购买。
这里安利一个对我很好的学长,我一开始也不知道是我的学长,是他从我的收获地址中认出来,主动给我免了代充费。
这些只是为了体现这个老板不会坑你们的。。。
这里给他打个广告嘿嘿
购买之前最好先询问一下店家!!
安妮代购小店
1.0嘻yVsQXc1RYDA啊 https://m.tb.cn/h.4LDm2LN Colab Pro升级月费会员 谷歌云盘扩容订阅 google one colabpro
不知道是不是网络的问题,在上传数据集的时候,图片莫名其妙的会重复。。
但是谷歌云盘竟然支持相同的名字,所以不能直接通过搜索(1)的名字后缀来删除。
应该(1)中 的小括号为中文,所以在读取图片的时候读取不到,但是也不会出现没有这个文件的报错,可能会出现Nantype的报错。
最后写了一个脚本来删除。。
import cv2
import os
import glob
img_dir = os.path.join(os.getcwd(), 'test' + os.sep)
lbl_dir = os.path.join(os.getcwd(), 'mask' + os.sep)
img_name_list = glob.glob(img_dir + '*' + '.png')
print('img_name_list', len(img_name_list))
lbl_name_list = []
for img_path in img_name_list:
name = img_path.split(os.sep)[-1] # 文件名,包括后缀
lbl_name_list.append(lbl_dir + name) # 获得储存文件地址及名称的列表
for i in range(len(lbl_name_list)):
if not os.path.exists(lbl_name_list[i]):
print(lbl_name_list[i].split(os.sep)[-1])
os.remove(img_name_list[i])
你也可尝试上传压缩后的文件,然后解压,但是解压后的文件好像也有问题。。
好像谷歌云盘解压的文件数还有限制。。
听说可以通过华为的skpt文件好像可以传的更快,不会出现上述问题,什么图片重复啊。并且可以把skpt的数据集传到colab上,跑第一代的时候不需要花费数据加载时间。
更新:2022年2月26日12:14:16
把数据集放在云盘外的文件夹可以便于数据级加载:
本来加载train data要7个小时,改了之后就正常了。
解决方式,云盘下放着文件及相关的压缩包。每次运行的时候都进行解压,如果要修改的话就修改云盘下的文件。然后用固定脚本的方式进行修改压缩后的运行文件。
!unrar x "/content/drive/MyDrive/root.rar" "/"
path='/content/drive/MyDrive/root.rar'
import shutil
import os
# # 把olddir拷贝一份newdir
path='/content/drive/MyDrive/root/YOLOv5-Lite/'
os.chdir(path)
!pwd
!rm /root/YOLOv5-Lite/train.py
!rm /root/YOLOv5-Lite/utils/datasets.py
!rm -rf /root/YOLOv5-Lite/data/bdd/labels
os.system("cp train.py /root/YOLOv5-Lite/train.py")
os.system("cp test.py /root/YOLOv5-Lite/test.py")
os.system("cp data/bdd/instances_val2017.json /root/YOLOv5-Lite/data/bdd/instances_val2017.json")
os.system("cp utils/datasets.py /root/YOLOv5-Lite/utils/datasets.py")
os.rename('/root/YOLOv5-Lite/data/bdd/images/test','/root/YOLOv5-Lite/data/bdd/images/test_mini')
os.rename('/root/YOLOv5-Lite/data/bdd/images/val','/root/YOLOv5-Lite/data/bdd/images/val_mini')
os.rename('/root/YOLOv5-Lite/data/bdd/images/train','/root/YOLOv5-Lite/data/bdd/images/train_mini')
os.rename('/root/YOLOv5-Lite/data/bdd/images/test1','/root/YOLOv5-Lite/data/bdd/images/test')
os.rename('/root/YOLOv5-Lite/data/bdd/images/train1','/root/YOLOv5-Lite/data/bdd/images/train')
os.rename('/root/YOLOv5-Lite/data/bdd/images/val1','/root/YOLOv5-Lite/data/bdd/images/val')
!unrar x '/content/drive/MyDrive/root/YOLOv5-Lite/data/bdd/labels.rar' '/root/YOLOv5-Lite/data/bdd/'
防止断连
保持长时间的固定点击:
function ClickConnect(){
console.log("Working");
document.querySelector("colab-toolbar-button#connect").click()
}
setInterval(ClickConnect,60000)
一些解决方式是参考其他的人做法或者从其他人的讲解得到启发,由于时间过久找不到原文,就不进行参考链接的展示。