初学CNN及代码
1.出现input size 为(512*1*1),而output size 为(512*0*0)。
答:由于输入的特征图太小,mnist 初始size为28*28,几次maxpooling后。解决方法就是减少层数或增大图片输入的size。
2.报错:invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number。
答:不同pytorch版本的问题,total_loss += loss_val.data[0] to total_loss += loss_val.data即可。或改成loss.item()
3.常用数据集下载问题
答:torchvision已经将数据集下载下来,直接定位到那个文件夹下download即可。
4.Module Not Found Error: No module named ‘tabulate‘。
答:尚未使用及解决。
5. RuntimeError: mat1 dim 1 must match .
答:卷积层到FC层的维度不匹配。nn.Linear(512, 100)中,512应该是卷积层得出的通道数*(特征图size^2),就是拉成1*1*512的Tensor作为通道数。100是输出的通道数。要自己推算。
6.maxpooling 是向上取整还是向下取整?
答:向下取整。conv也是向下取整。
7.要很注意是否padding了。
8.如果发现一直精度没啥变化,是时候调整下学习率了。