官方文档介绍

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')

在最简单的情况下,具有输入大小的图层的输出值 

pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_卷积

 和输出 

pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_默认值_02

 可以精确地描述为: 

pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_默认值_03


  • 在⋆ 是有效的互相关运算符, 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,每个输入通道都与自己的一组过滤器(
  • pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_卷积_04

  •  ).


当groups = in_channels和out_channels == K * in_channels时,其中K为正整数,此操作也称为“深度卷积”。

换句话说,对于大小的输入 

pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_卷积_05

 ,可以使用参数执行 深度乘数K的深度卷积

pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_默认值_06

在某些情况下,当在CUDA设备上使用张量时,此运算符可能会选择不确定的算法来提高性能。如果不希望这样做,可以尝试通过设置确定操作(可能以性能为代价)。torch.backends.cudnn.deterministic = True

https://pytorch.org/docs/master/notes/randomness.html

重现性

在PyTorch发行版,单独的提交或不同的平台上,不能保证完全可重复的结果。此外,即使使用相同的种子,结果在CPU和GPU执行之间也可能无法重现。

但是,您可以采取一些步骤来限制特定平台,设备和PyTorch版本的不确定行为的来源。首先,您可以控制可能导致应用程序的多个执行行为不同的随机性源。其次,您可以配置PyTorch以避免对某些操作使用不确定的算法,这样,在给定相同输入的情况下,对这些操作的多次调用将产生相同的结果。

警告


确定性操作通常比非确定性操作慢,因此对于您的模型,单次运行性能可能会降低。但是,确定性可以通过促进实验,调试和回归测试来节省开发时间。


参数

  • in_channelsint)–输入图像中的通道数
  • out_channelsint)–卷积产生的通道数
  • kernel_sizeinttuple)–卷积内核的大小
  • 步幅inttuple可选)–卷积的步幅。默认值:1
  • paddinginttuple可选)–将零填充添加到输入的两侧。默认值:0
  • padding_mode字符串可选) 默认:'zeros''reflect''replicate''circular''zeros'
  • 膨胀inttuple可选)–内核元素之间的间距。默认值:1
  • int可选)–从输入通道到输出通道的阻塞连接数。默认值:1
  • 偏差bool可选)–如果为True,则向输出添加可学习的偏差。默认:True

pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_默认值_07

N是一个批处理大小,C表示多个通道, L 是信号序列的长度

pytorch怎么用CNN处理时序列数据 pytorch 1d cnn_html_08