- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始使用 pytorch 并使用一些转换来构建以下模型,并使用其中一个教程作为引用:
model = torch.nn.Sequential(
torch.nn.Linear(D_in, H),
torch.nn.ReLU(),
torch.nn.Linear(H, D_out),
)
我想使用 LSTM 网络,所以我尝试执行以下操作:
model = torch.nn.Sequential(
torch.nn.LSTM(D_in, H),
torch.nn.Linear(H, D_out)
)
这给了我这个错误:
RuntimeError: input must have 3 dimensions, got 2
为什么我会看到这个错误?我预计我对如何在 pytorch 中链接转换(网络?)的理解存在根本性错误......
编辑
在遵循@esBee 的建议后,我发现以下运行正确。这是因为 LSTM 期望输入具有以下维度:
input of shape (seq_len, batch, input_size): tensor containing the features of the input sequence. The input can also be a packed variable length sequence
local_x = local_x.unsqueeze(0)
y_pred, (hn, cn) = layerA(local_x)
y_pred = y_pred.squeeze(0)
y_pred = layerB(y_pred)
但是,我的原始训练/测试数据集只有序列长度 1 这一事实让我觉得我做错了什么。在神经网络的上下文中,此参数的用途是什么?
最佳答案
这里需要注意的是,与 torch.nn.Linear
等线性层相反,torch 等循环层有不止 1 个输出.nn.LSTM
.
虽然 torch.nn.Linear
仅返回 y = Ax + b
中的 y
,但 torch.nn.LSTM
s return output, (h_n, c_n)
(更详细地解释 in the docs )让您选择要处理的输出。因此,在您的示例中发生的情况是,您将所有这些几种类型的输出输入到 LSTM 层之后的层中(导致您看到的错误)。您应该改为选择 LSTM 输出的特定部分,并将其仅馈送到下一层。
很遗憾,我不知道如何在 Sequential
中选择 LSTM 的输出(欢迎提出建议),但您可以重写
model = torch.nn.Sequential(
torch.nn.LSTM(D_in, H),
torch.nn.Linear(H, D_out)
)
model(x)
作为
layerA = torch.nn.LSTM(D_in, H)
layerB = torch.nn.Linear(H, D_out)
x = layerA(x)
x = layerB(x)
然后通过编写选择 LSTM 最后一层的输出特征 (h_n) 来纠正它
layerA = torch.nn.LSTM(D_in, H)
layerB = torch.nn.Linear(H, D_out)
x = layerA(x)[0]
x = layerB(x)
关于deep-learning - Pytorch - 使用 LSTM 网络时尺寸不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50557039/
你能告诉我,下面两种 scss 样式之间的区别吗?我对此没有清楚的认识。 :host { display: inline-block; /deep/ { span { co
/deep/和::ng-deep 这些在 DOM 模式下也被弃用了,我想知道将来是否会有/deep/和::ng-deep 的替代方案,或者我们应该开始使用其他方式? ::ng-deep .result
长期以来,我一直在寻找这个问题的明确答案。是否有可靠且推荐的替代策略来执行此操作?此问题的不正确答案包括: Just favor ::ng-deep for now 和 if component au
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我正在阅读 DQN 网络上的 deepmind 自然论文。 我几乎得到了关于它的一切,除了一个。我不知道为什么以前没有人问过这个问题,但无论如何对我来说似乎有点奇怪。 我的问题: DQN 的输入是一个
我在我的新 Jetpack Compose 应用程序中设置了一个底栏,其中包含 2 个目的地。我尝试遵循 Google 的示例。 例如它看起来像这样: @Composable fun MyBottom
所以,我读过 here在 Vue.js 中,您可以在选择器中使用 /deep/ 或 >>> 来创建适用于子组件内部元素的样式规则。但是,尝试在我的样式中使用它,无论是在 SCSS 中还是在普通的旧 C
我正在尝试实现DQN和DDQN(两者都有经验回复)来解决OpenAI AI-Gym Cartpole环境。这两种方法有时都能学习并解决这个问题,但并非总是如此。 我的网络只是一个前馈网络(我尝试过使用
scss中下面两个有什么区别,在片段中给出一些例子。 :host::ng-deep .content-body { ... } 和 .content-body :host::ng-deep { ...
在我们的元素中,我们使用了 Angular Material 进行开发。我们已经覆盖了 使用::ng-deep 的 Angular Material 样式自定义 CSS 属性。 在使用::ng-dee
我尝试熟悉 Q-learning 和深度神经网络,目前尝试实现 Playing Atari with Deep Reinforcement Learning . 为了测试我的实现并尝试使用它,我坚持尝
我开始在 Vue 3 中收到以下警告 ::v-deep用法。 ::v-deep usage as a combinator has been deprecated. Use ::v-deep() in
谁能给我解释一下 df2 = df1 df2 = df1.copy() df3 = df1.copy(deep=False) 我已经尝试了所有选项并执行了以下操作: df1 = pd.DataFram
我对 PyTorch 比较陌生,但我对 Keras 和 TensorFlow 有很好的经验。我关注了这个article在我自己的训练脚本中使用 DDP。然而,出于某种原因,我总是最终得到: proce
我正在尝试为 Conv2D 和 transposeconv2D 层编写 dropconnect 代码。按照 https://pytorchnlp.readthedocs.io/en/latest/_m
我正在做一个 mask 检测项目,我使用 ultralytics/yolov5 训练了我的模型。我将训练好的模型保存为一个 onnx 文件,你可以在这里找到模型文件 model.onnx .现在我希望
我正在研究一种强化算法,我对此很陌生,并试图掌握一些东西。 Player1Env 查看 7x6 Connect4 游戏网格。我按如下方式初始化类: def __init__(self): su
我有几个嵌入矩阵,假设 E1 矩阵用于 Glove,E2 用于 Word2vec。 我想构建一个简单的情感分类器,它采用该嵌入的可训练加权和。 例如,对于单词“dog”,我想在学习 x 和 y 时得到
我正在使用它处理深度学习和医学图像分类。我使用大脑 MRI 数据并将它们转换为 jpg。然后使用 VGG16 进行训练。当我检查损失、准确性、验证损失和验证准确性时,我看到了下图。 accuracy
我设计的网络包括转置卷积层。(pytorch 中的 ConvTranspose2d) 我想获得网络的感受野大小。 感受野的概念是否也适用于转置卷积层? 如果是,那我怎样才能得到它? 最佳答案 您可以使
我是一名优秀的程序员,十分优秀!