pytorch千千问

来源:互联网 发布:windows桌面重排 编辑:程序博客网 时间:2024/04/27 21:03

使用pytorch遇到一些问题,有些解决了,有些待解。虽然不妨碍使用,记在心里总是不舒服,遇到一个记下一个,解决一个回答一个。

1 torch.setdefaulttensortype()能不能根本上改变内存消耗量?

对问题的进一步描述:
最近再来使用pytorch重新实现openpose时,遇到的这个问题。这是一个以vgg网络为基础,后面有6个阶段的网络,累积参数约为103645184bits,使用float32之后,网络参数的数据量约为3G。减少数据量的一种方法是不是可以改变精度入手?
答案:
暂无

2 cudnn.benchmark的作用是什么?

对问题的描述:
最近看到别人的实例里面会net.cuda()网络传入到显卡之后,加上一句这个代码
答案:
暂无

3 微调时停止某些层的参数更新,和后面优化optim的step更新冲突怎么处理?

对问题的描述:
openpose会用到vgg作为基础网络,因此可以直接使用部分训练好的参数,在使用vgg的参数(是字典形式orderDict形式)更新网络参数后,这部分的require_update想要调成false。但是和optim冲突了。
其中,orderDict会以自定义的方式将网络层组成字典,默认情况下会以层的序号为字典的关键字。
答案:
暂无

4 微调时,是不是只能对修改了的网络层使用自定义的参数初始化方法?

对问题的描述:
微调方法可以参考这儿[1]和这儿[2],尤其是后面的链接[2],但是好像没有提怎么出来变化了的层结构中的参数,难道需要使用xavier初始化了吗?
答案:
好像似的

5 数据打乱的意义?

对问题的描述:
使用dataLoader提供了一个参数数据打乱,shuffle。一般网络训练的时候,会使用一个非常大的迭代次数,这个次数可能超过了数据集的大小除以批的大小batch。(有关dataLoader系统性的介绍可以看这儿)
所以问题是在训练的时候,如果不打乱,也没有相应的transform图片的各种增强处理的情况下,训练效果会怎么样?
而SGD随机梯度下降的时候,会提到一个随机的batch批次,也能提供损失函数收敛的一个方向。更何况即便使用完全相同的batch,他们参与运算的参数也是不一样的,所提供的梯度也是不一样的。只要类似情况不是特别多的条件下,不导致过拟合时,是不是也是可行的呢?
答案:
暂无

原创粉丝点击