官方文档介绍
https://pytorch.org/docs/master/nn.html#convolution-layers
pytorch 中文文档:
https://pytorch-cn.readthedocs.io/zh/latest/
当然,在pycharm中查找某个函数的具体结构时也可以ctrl+click
CONV1D
https://pytorch.org/docs/master/generated/torch.nn.Conv1d.html#torch.nn.Conv1d
在由多个输入平面组成的输入信号上应用一维卷积。
torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')
在最简单的情况下,具有输入大小的图层的输出值 和输出
可以精确地描述为:
-
-
在⋆ 是有效的互相关运算符, N是一个批处理大小,C表示多个通道, L 是信号序列的长度。该模块支持TensorFloat32。
-
stride
控制互相关的步幅,单个数字或一个元素的元组。 -
padding
控制padding
点数两侧的隐式填充量。 -
dilation
控制内核点之间的间距;也称为àtrous算法。很难描述,但是此链接 对操作做了很好的可视化dilation
。 -
groups
控制输入和输出之间的连接。in_channels
并且out_channels
必须都可以被整除groups
。例如, -
在groups= 1时,所有输入都卷积为所有输出。
-
在groups = 2时,该操作等效于并排设置两个conv层,每个conv层看到一半的输入通道并产生一半的输出通道,并且随后都将它们级联。
-
在groups =
in_channels
,每个输入通道都与自己的一组过滤器( ).
-
当groups = in_channels和out_channels == K * in_channels时,其中K为正整数,此操作也称为“深度卷积”。
换句话说,对于大小的输入 ,可以使用参数执行 深度乘数K的深度卷积
在某些情况下,当在CUDA设备上使用张量时,此运算符可能会选择不确定的算法来提高性能。如果不希望这样做,可以尝试通过设置确定操作(可能以性能为代价)。torch.backends.cudnn.deterministic = True
https://pytorch.org/docs/master/notes/randomness.html
重现性
在PyTorch发行版,单独的提交或不同的平台上,不能保证完全可重复的结果。此外,即使使用相同的种子,结果在CPU和GPU执行之间也可能无法重现。
但是,您可以采取一些步骤来限制特定平台,设备和PyTorch版本的不确定行为的来源。首先,您可以控制可能导致应用程序的多个执行行为不同的随机性源。其次,您可以配置PyTorch以避免对某些操作使用不确定的算法,这样,在给定相同输入的情况下,对这些操作的多次调用将产生相同的结果。
警告
确定性操作通常比非确定性操作慢,因此对于您的模型,单次运行性能可能会降低。但是,确定性可以通过促进实验,调试和回归测试来节省开发时间。
参数
N是一个批处理大小,C表示多个通道, L 是信号序列的长度