了解PyTorch conv1D的输入形状吗?

安贾尼

这似乎是在这里的常见的问题(123),但我仍然在努力确定正确的形状输入到PyTorch conv1D

我有长度为512(每个序列的标记数)的文本序列,每个标记由长度为768(嵌入)的向量表示。我正在使用的批量大小为6。

所以我输入到conv1D的张量的形状为[6,512,768]。

input = torch.randn(6, 512, 768) 

现在,我想使用来自PyTorch的conv1D层对内核大小为2的序列(512)的长度进行卷积。

理解1:

我假设“ in_channels”是conv1D层的嵌入维。如果是这样,那么将以这种方式定义conv1D层,其中

in_channels = embedding dimension (768)
out_channels = 100 (arbitrary number)
kernel = 2

convolution_layer = nn.conv1D(768, 100, 2)
feature_map = convolution_layer(input)

但是基于这种假设,我得到以下错误:

RuntimeError: Given groups=1, weight of size 100 768 2, expected input `[4, 512, 768]` to have 768 channels, but got 512 channels instead

理解2:

然后,我假设“ in_channels”是输入序列的序列长度。如果是这样,那么将以这种方式定义conv1D层,其中

in_channels = sequence length (512)
out_channels = 100 (arbitrary number)
kernel = 2

convolution_layer = nn.conv1D(512, 100, 2) 
feature_map = convolution_layer(input)

这可以正常工作,并且我得到了维度为的输出特征图[batch_size, 100, 767]但是,我很困惑。卷积层是否应该在512的序列长度上进行卷积并输出维度特征图[batch_size, 100, 511]

非常感谢您的帮助。

乔达格

在pytorch中,您输入的[6,512,768]形状实际上应该是[6,768,512],其中特征长度由通道维表示,序列长度是长度维。然后,您可以使用分别为768和100的输入/输出通道定义conv1d,以获得[6、100、511]的输出。

给定input形状[6,512,768],您可以使用将其转换为正确的形状Tensor.transpose

input = input.transpose(1, 2).contiguous()

.contiguous()张量的存储记忆确保连续加工过程中有助于避免潜在的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

pytorch输入张量大小错误的尺寸Conv1D

来自分类Dev

我的带有身份验证内核的PyTorch Conv1d无法产生与输入相同的输出

来自分类Dev

使用Conv1D层将keras代码转换为pytorch代码

来自分类Dev

试图了解PyTorch SmoothL1Loss实现

来自分类Dev

为什么“ conv1d”在C代码,python和pytorch中有所不同

来自分类Dev

自编码器 Conv1D 形状错误

来自分类Dev

使用conv1D“检查输入时出错:预期conv1d_input具有3维,但数组的形状为(213412,36)”

来自分类Dev

了解pytorch autograd

来自分类Dev

了解Tensorflow LSTM输入形状

来自分类Dev

了解PyTorch Linear的工作原理

来自分类Dev

使用conv1D时输入数据和训练数据之间的尺寸不匹配

来自分类Dev

如何在Keras中为Conv1D重塑输入层?

来自分类Dev

了解summary()的值(输出形状,参数#)吗?

来自分类Dev

了解summary()的值(输出形状,参数#)吗?

来自分类Dev

ValueError:Layer conv1d的输入不是符号张量,层的所有输入都应为张量

来自分类Dev

PyTorch Conv2D返回零输入张量的非零输出?

来自分类Dev

如何在密集或展平的图层之后应用Conv1D:ValueError:形状(1、1、3)和(1、1)不兼容

来自分类Dev

内核大小等于1的Conv1D做什么?

来自分类Dev

pytorch conv2d配重

来自分类Dev

了解Keras层的形状

来自分类Dev

Keras Conv1D和VGG的问题

来自分类Dev

如何为多维数组创建conv1d

来自分类Dev

使用Conv1D图层时出现ValueError

来自分类Dev

用于时间序列的 Keras Conv1D

来自分类Dev

蜡烛 Conv1D 上的负尺寸大小

来自分类Dev

了解Tensorflow LSTM模型输入吗?

来自分类Dev

输入到 1D Conv 层的数据集形状的困难

来自分类Dev

如何在keras中将Conv1D的输出与Conv2D的输出合并

来自分类Dev

了解nn.Linear在PyTorch中的正向传播的用法

Related 相关文章

  1. 1

    pytorch输入张量大小错误的尺寸Conv1D

  2. 2

    我的带有身份验证内核的PyTorch Conv1d无法产生与输入相同的输出

  3. 3

    使用Conv1D层将keras代码转换为pytorch代码

  4. 4

    试图了解PyTorch SmoothL1Loss实现

  5. 5

    为什么“ conv1d”在C代码,python和pytorch中有所不同

  6. 6

    自编码器 Conv1D 形状错误

  7. 7

    使用conv1D“检查输入时出错:预期conv1d_input具有3维,但数组的形状为(213412,36)”

  8. 8

    了解pytorch autograd

  9. 9

    了解Tensorflow LSTM输入形状

  10. 10

    了解PyTorch Linear的工作原理

  11. 11

    使用conv1D时输入数据和训练数据之间的尺寸不匹配

  12. 12

    如何在Keras中为Conv1D重塑输入层?

  13. 13

    了解summary()的值(输出形状,参数#)吗?

  14. 14

    了解summary()的值(输出形状,参数#)吗?

  15. 15

    ValueError:Layer conv1d的输入不是符号张量,层的所有输入都应为张量

  16. 16

    PyTorch Conv2D返回零输入张量的非零输出?

  17. 17

    如何在密集或展平的图层之后应用Conv1D:ValueError:形状(1、1、3)和(1、1)不兼容

  18. 18

    内核大小等于1的Conv1D做什么?

  19. 19

    pytorch conv2d配重

  20. 20

    了解Keras层的形状

  21. 21

    Keras Conv1D和VGG的问题

  22. 22

    如何为多维数组创建conv1d

  23. 23

    使用Conv1D图层时出现ValueError

  24. 24

    用于时间序列的 Keras Conv1D

  25. 25

    蜡烛 Conv1D 上的负尺寸大小

  26. 26

    了解Tensorflow LSTM模型输入吗?

  27. 27

    输入到 1D Conv 层的数据集形状的困难

  28. 28

    如何在keras中将Conv1D的输出与Conv2D的输出合并

  29. 29

    了解nn.Linear在PyTorch中的正向传播的用法

热门标签

归档