1
BatchNorm2d
规模化函数,使得输入规模化
2.
张量的通道规则
针对于图像分析时的通道规则
对于做图形图像识别相关工作的朋友来说, 我们一般用到4个通道去定义数据. 这4个通道分别是:
N ---- Batch(es), 批/组
C ---- Channel(s), 图片颜色通道数
H ---- Height, 图片高
W ---- Width, 图片宽
譬如一个4x4矩阵
[1,1,1,1]
[2,2,2,2]
[3,3,3,3]
[4,4,4,4]
如果分成两批的话,就是
[2,1,2,4]
结果的话还是16,由乘法恒等原则搞成了16,但是是分为了两批。
3.
for i in moudle.parameters():
print(i)
输出module参数
4,
torch nn和 torch.nn.funtional的区别
torch.nn 中大多数 layer 在 torch.nn.funtional 中都有一个与之对应的函数。二者的区别在于:
torch.nn.Module 中实现 layer 的都是一个特殊的类, 会自动提取可学习的参数。
nn.functional 中的函数,更像是纯函数,由 def function( ) 定义,只是进行简单的数学运算而已。即 functional 中的函数是一个确定的不变的运算公式,输入数据产生输出就ok。而深度学习中会有很多权重是在不断更新的,不可能每进行一次 forward 就用新的权重重新来定义一遍函数来进行计算,所以说就会采用类的方式,以确保能在参数发生变化时仍能使用我们之前定好的运算步骤。
从上可知,如果模型有可学习的参数,最好使用nn.Module对应的相关layer,否则二者都可以使用,没有什么区别。比如Relu其实没有可学习的参数,只是进行一个运算而已,所以使用的就是functional中的relu函数,而卷积层和全连接层都有可学习的参数,所以用的是nn.Module中的类。
不具备可学习参数的层,将它们用函数代替,这样可以不用放在构造函数中进行初始化。
5,
对于数据处理,先转list,再转panda的DataFrame, panda的DataFrame自身有个to_csv
可以转换为csv文件
分类问题,都用 one-hot + Cross-entropy
training
过程中,分类问题用 Cross-entropy,回归问题用 mean squared error。
training 之后,
validation / testing 时,使用 classification error,更直观,而且是我们最关注的指标。(分类错误数量 / 总数) 即:classification error = count of error items count of all items =\frac{\text { count of error items }}{\text { count of all items }}=\frac{\text { count of error items }}{\text { count of all items }}
使用cross时不要搭配上soft因为会导致二次压缩最终loss极高
浙公网安备 33010602011771号