1、nn.Sequential()
nn.Sequential( nn.Conv1d(6, self.base_plane, kernel_size=7, stride=2, padding=3, bias=False),nn.BatchNorm1d(self.base_plane), nn.ReLU(inplace=True), )
一个有序的容器,神经网络模块将按照在传入构造器的顺序依次被添加到计算图中执行,同时以神经网络模块为元素的有序字典也可以作为传入参数
nn.Sequential里面的模块按照顺序进行排列的,所以必须确保前一个模块的输出大小和下一个模块的输入大小是一致的。
2、 nn.Conv1d()
nn.Conv1d( 6, self.base_plane, kernel_size=7, stride=2, padding=3, bias=False ),
class torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
in_channels(int) – 输入信号的通道。
out_channels(int) – 卷积产生的通道。有多少个out_channels,就需要多少个1维卷积
kernel_size(int or tuple) - 卷积核的尺寸,卷积核的大小为(k,),第二个维度是由in_channels来决定的,所以实际上卷积大小为kernel_size*in_channels
stride(int or tuple, optional) - 卷积步长
padding (int or tuple, optional)- 输入的每一条边补充0的层数
dilation(int or tuple, `optional``) – 卷积核元素之间的间距
groups(int, optional) – 从输入通道到输出通道的阻塞连接数
bias(bool, optional) - 如果bias=True,添加偏置
3、nn.BatchNorm1d()
nn.BatchNorm1d(self.base_plane),
训练深度网络的时候经常发生训练困难的问题,因为,每一次参数迭代更新后,上一层网络的输出数据经过这一层网络计算后,数据的分布会发生变化,为下一层网络的学习带来困难。BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。
BatchNorm就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到正态分布。这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。
nn.BatchNorm1d(dim),dim等于前一层输出的维度。BatchNorm层输出的维度也是dim。
4、nn.ReLU()
nn.ReLU(inplace=True),
nn.ReLU()函数默认inplace 默认是False,inplace=True计算结果不会有影响。利用in-place计算可以节省内(显)存,同时还可以省去反复申请和释放内存的时间。但是会对原变量覆盖,只要不带来错误就用。
5、osp.exists(file)
os.path.exists(path) 如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
6、to_hdf
使用HDFStore将包含的数据写入HDF5文件。