CoLab的应用汇总
一、开启及测试
谷歌云:https://drive.google.com/drive/
参考:https://zhuanlan.zhihu.com/p/54389036
首先新建-更多-CoLab,然后蹦出CoLab界面
!/opt/bin/nvidia-smi
测试当前状态
还可以参考:https://www.csdn.net/tags/MtTaMg4sMDIyNDk3LWJsb2cO0O0O.html
里面有一些有用的操作
二、数据上传
1、直接上传
不说了,特别慢
2、通过onedrive转换上传
首先上传onedrive
然后通过MultCloud - Put multiple cloud drives into one,转到云盘
也不快,而且有5G限制每月
3、通过Kaggle上传
参考:(44条消息) Kaggle数据集上传到Google Colab上,亲测绝对有效_qq_20880939的博客-CSDN博客_kaggle上传数据集
Kaggle:salt0107fish | Novice | Kaggle
这里遇到了一个404 not found 的问题,我将Kaggle调到1。5。3版本后依然报错
这是因为我的数据集是私密的,在settings改成公开即可,就在数据集那一页Add a subtitleEdit
最后,上传文件会到一个不是云盘的地方,需要加上
三、Kaggle测试
1、上传文件
参考:https://blog.csdn.net/qq_42865713/article/details/114306029?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=1
四、TPU尝试
参考文字:https://www.qbitai.com/2020/02/11888.html
参考视频:https://www.bilibili.com/video/BV1uE411X75h/
五、程序运行记录
程序均在packages目录下。
1、版本:CONFORMER单独加VLAD,目前已在COLAB训练开始,两个号都有,名为conformer-kaggle
对应文件:conformer-main 与conformer-save-main,其中conformer-main有测试文件
epoch12测试:
纯Trans-VLAD测试结果:
====> Recall@1: 0.0680
====> Recall@5: 0.1439
====> Recall@10: 0.2096
====> Recall@20: 0.3006
纯CONV测试结果:
====> Recall@1: 0.0828
====> Recall@5: 0.1605
====> Recall@10: 0.2238
====> Recall@20: 0.3080
综合测试结果:在二者之上
====> Calculating recall @ N
====> Recall@1: 0.0799
====> Recall@5: 0.1714
====> Recall@10: 0.2371
====> Recall@20: 0.3251
这个案例尝试一下再做一个epoch
1 0.0766
5 0.1602
10 0.2294
20 0.3059
还没有之前的好,但是误差确实下降
试一下训练集合
这样看来,还确实是conv的效果更好一些(但是看起来更象是训练太少??!!)
改用一下CONV + TRANS-VLAD一起
换用一下原始数据集试一试,数据不记录了,略有下降,但是大概差不多
纯CONV:
====> Recall@1: 0.1169
====> Recall@5: 0.1931
====> Recall@10: 0.2557
====> Recall@20: 0.3486
纯VLAD:
====> Recall@1: 0.1063
====> Recall@5: 0.1785
====> Recall@10: 0.2383
====> Recall@20: 0.3352
似乎是没有过拟合,因为就根本没拟合
混合方法:一个为主,判断另一个有没有这个:
以trans为主:
====> Calculating recall @ N
====> Recall@1: 0.1072
====> Recall@5: 0.1822
====> Recall@10: 0.2476
====> Recall@20: 0.3437
以conv为主:
====> Recall@1: 0.1165
====> Recall@5: 0.1917
====> Recall@10: 0.2554
====> Recall@20: 0.3453
确有提高。不过对CONV提高并不大,甚至有几个还没了。
惊天乌龙,我根本就没加载数据集!
重新测试,首先训练集:
checkpoint 0.0814
0.1378
0.1556
0.1626
甚至没有随机数据高?感觉有问题
直接把本来的模型套一个随机数vlad
训练集(应该没这个概念了,因为不是在这里测的)
1 0.1265
5 0.2450
10 0.3331
20 0.4364
测试集
1 0.0879
5 0.2234
10 0.3182
20 0.4025
单conv结果:
1 0.0774
5 0.1998
10 0.3010
20 0.4318
单trans
1 0.1111
5 0.2282
10 0.3177
20 0.4276
使用提供的模型,在训练集上训练了一个epoch的结果:
测试集:
====> Recall@1: 0.0627
====> Recall@5: 0.1239
====> Recall@10: 0.1644
====> Recall@20: 0.1999
训练集:
====> Recall@1: 0.1085
====> Recall@5: 0.1835
====> Recall@10: 0.2241
====> Recall@20: 0.2659
总是不如没训练的随机数好,一定是有问题的。
contrans-vlad:
epoch1
val-set:
conv:
====> Recall@1: 0.0726
====> Recall@5: 0.1212
====> Recall@10: 0.1497
====> Recall@20: 0.1831
trans:
====> Recall@1: 0.0694
====> Recall@5: 0.1322
====> Recall@10: 0.1747
====> Recall@20: 0.2391
conv + trans
====> Recall@1: 0.0741
====> Recall@5: 0.1199
====> Recall@10: 0.1498
====> Recall@20: 0.1792
epoch2:
conv:
====> Recall@1: 0.0716
====> Recall@5: 0.1209
====> Recall@10: 0.1496
====> Recall@20: 0.1878
conv+trans:
====> Recall@1: 0.0724
====> Recall@5: 0.1229
====> Recall@10: 0.1539
====> Recall@20: 0.1807
epoch3 result
====> Recall@1: 0.0319
====> Recall@5: 0.0802
====> Recall@10: 0.1140
====> Recall@20: 0.1522
2、版本:contrans-vlad-v1:修改网络结构后的第一版
对应文件同名,目前已上传非咸鱼帐号试图训练
1)val set:
epoch0:
====> Recall@1: 0.0741
====> Recall@5: 0.1199
====> Recall@10: 0.1498
====> Recall@20: 0.1792
epoch6:
====> Recall@1: 0.0347
====> Recall@5: 0.0915
====> Recall@10: 0.1211
====> Recall@20: 0.1463
2)train set:
epoch6:
====> Recall@1: 0.0596
====> Recall@5: 0.1237
====> Recall@10: 0.1506
====> Recall@20: 0.1744
六、报错记录
1、文件不存在问题
OSError: [Errno 5] Input/output error: '/content/drive/MyDrive/Dataset/002/002006_pitch1_yaw1.jpg'
不知道为什么,但是其实是有的,估计是数据读取问题
2、数据读取太慢问题:
只好每次都下载数据集
参考:https://chowdera.com/2021/12/20211207062421643r.html
3、KAGGLE加载数据集报错
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Transport
这是因为需要挂载云盘,不挂载就报错。
五、注意事项1、一定要在运行,下载数据集之前完成GPU的配置,不然换显卡就会全部刷新。。。