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

最后,上传文件会到一个不是云盘的地方,需要加上

!unzip -d /content/drive/MyDrive/Pittsburg/ /content/datasets/salt0107fish/pitts/pitts.zip
解压在自己的云盘下。
 
遇到问题:在colab解压和drive的不相同,不知道为什么,网上有同样的问题,参考:https://www.csdn.net/tags/NtzaUg3sMTU1NzMtYmxvZwO0O0OO0O0O.html
还可以参考更详细的:https://stackoverflow.com/questions/58785726/google-drive-and-colaboratory-virtual-machine-are-not-syncing-properly

 

三、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的配置,不然换显卡就会全部刷新。。。


 

posted @ 2022-04-20 21:55  小咸鱼在看博客  阅读(216)  评论(0编辑  收藏  举报