第二天实验踩坑记录

今日第一坑:用iter(data_loader)来进行迭代时,每个epoch都需要重置迭代器,不然会报错Stopiteration(我是把iter()的申明放到了epoch循环外,导致报错)。

enumerate(data_loader)则是直接写在循环内的。

CNN做主干网络提取特征感觉训练效果不佳,平均误差在8ps,很差。

同时以2层RNN做主干网络进行实验,调整了网络结构,预测器减少一层线性层。

RNN的输入【batchsize, numcorner, featuredim】输出【batchsize, numcorner, hiddensize】。

batchnorm层主要作用对每个批次的输入都归一化至均值为0,方差为1的标准正态分布,保持输入的分布一致性,可以加速网络的收敛。BN在CNN中表现不错,但目前在RNN中引入BN的有几项工作,目前有些矛盾的结论。

维度变化技巧

x = x.view(-1, dim)  -1表示自适应大小

x = x[:, -1, :] 可以去掉第二维,例如【8,12,14】变为【8,14】

踩坑2:RuntimeError: view size is not compatible with input tensor‘s size and stride

出现这个原因主要就是因为view()需要Tensor中的元素地址是连续的,因为可能出现Tensor不连续的情况,修改为:在.view前加.contiguous(),使其变为连续就ok。

但不知道为何昨日并未出现这个报错。

踩坑3:做回归预测在最后一层输出层用了sigmod激活函数映射输出

回归预测与分类问题不同,分类问题需要在最后一层加激活函数映射至类别概率(0-1之间),而回归预测则不需要。(加了激活函数后,预测的延时会被映射至0-1之间,其分布与预测结果标签相差甚远)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值