Task02:Baseline问题与理解

前言

已经过了打卡时间了,幸亏我们可以推迟一下,太烦了,一直在搞baseline。
跟别人的一样的代码,他们能跑,我怎么都出不来。
后来才知道是因为json导入的时候dict没序,但明明python3不是dictionary有序吗?不是别人没改也能跑吗?崩溃了!!!
解决了这个问题开始研究colab,最难的是为什么google disk更新了数据,colab加载后数据还不更新,是有延迟吗?? 心态爆炸。希望有知道的可以评论跟我说一下,感谢

代码中不知道的函数记录

1、torch.backends.cudnn.deterministic?
将这个 flag 置为True的话,每次返回的卷积算法将是确定的,即默认算法。如果配合上设置 Torch 的随机种子为固定值的话,应该可以保证每次运行网络的时候相同输入的输出是固定的

2、torch.backends.cudnn.benchmark?
这个 GPU 相关的 flag,
设置 torch.backends.cudnn.benchmark=True 将会让程序在开始时花费一点额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法,进而实现网络的加速。适用场景是网络结构固定(不是动态变化的),网络的输入形状(包括 batch size,图片大小,输入的通道)是不变的,其实也就是一般情况下都比较适用。反之,如果卷积层的设置一直变化,将会导致程序不停地做优化,反而会耗费更多的时间。

3、class SVHNDataset(Dataset)?
自己写的数据集类,必须继承from torch.utils.data.dataset import Datase,然后自定义两个内置方法:def getitem(self, index):、def len(self):

4、glob.glob()?
返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。

5、model_conv = models.resnet18(pretrained=True)?
torchvision.models.resnet18(pretrained=False, ** kwargs)
构建一个resnet18模型。pretrained (bool) – True, 返回在ImageNet上训练好的模型

6、torch.nn.Sequential()?
torch.nn.Sequential是一个Sequential容器,模块将按照构造函数中传递的顺序添加到模块中。通俗的话说,就是根据自己的需求,把不同的函数组合成一个(小的)模块使用或者把组合的模块添加到自己的网络中。

torch.nn.Sequential与torch.nn.Module区别与选择:
使用torch.nn.Module,我们可以根据自己的需求改变传播过程,如RNN等
如果你需要快速构建或者不需要过多的过程,直接使用torch.nn.Sequential即可。

7、nn.Sequential(*list(model_conv.children())[:-1])?
一个继承nn.module的model它包含一个叫做children()的函数,这个函数可以用来提取出model每一层的网络结构,在此基础上进行修改即可,修改方法如下(去除后一层)。

8、feat = feat.view(feat.shape[0], -1)?
最后,项目需要对数据进行分类或者识别,就需要全连接层Linear,这时候就需要将高维数据平铺变为低位数据。就是展成1行,然后进入全连接层。

9、 np.vstack((a,b)) #将两个数组按行放到一起
np.hstack((a,b)# 将两个数组按列放到一起

数据读取与数据增强阅读

1 python中pillow和opencv可以完成图片读取操作
Pillow是Python图像处理函式库(PIL)的一个分支。
Pillow的官方文档:https://pillow.readthedocs.io/en/stable/
OpenCV在功能上比Pillow更加强大很多,学习成本也高很多。
OpenCV官网:https://opencv.org/
OpenCV Github:https://github.com/opencv/opencv
OpenCV 扩展算法库:https://github.com/opencv/opencv_contrib

2数据扩增Data Augmentation
数据扩增可以增加训练集的样本,同时也可以有效缓解模型过拟合的情况,也可以给模型带来的更强的泛化能力。
对于图像分类,数据扩增一般不会改变标签;对于物体检测,数据扩增会改变物体坐标位置;对于图像分割,数据扩增会改变像素标签。
3数据读入
Dataset:对数据集的封装,提供索引方式的对数据样本进行读取
DataLoder:对Dataset进行封装,提供批量读取的迭代读取

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值