从 ResNet 减少 4D 特征张量的维度以适应 2D LSTM 模型

电磁兼容

我正在设计一个机器学习模型,该模型从 ResNet 获取特征张量并使用 LSTM 来识别图像中的字母序列。来自 ResNet 的特征张量是 4-D ,但是,LSTM_cell 需要 2-D 的输入。我知道其他能够减小尺寸的方法,例如 .view() 和 .squeeze()。但是,好像我这样做了,它改变了特征向量的维度大小。起初向量是 [128, 2, 5, 512] 但它需要是 [128, 512]。但是,调用 .view(-1,512) 会乘以维度以获得 [1280, 512]。你如何在不相乘的情况下改变尺寸?

抑制剂

CNN 的输出应该是一个 3-D 张量(例如[128, x, 512]),以便可以将其视为一个序列。然后,您可以nn.LSTMCell()使用x 迭代for 循环将它们输入。

然而,4-D 张量仍然存在一些空间特征,不适合输入 LSTM。一个典型的做法是重新设计你的 CNN 架构,以确保它产生一个 3-D 张量。例如,您可以nn.Conv2d()在 CNN 网络的末尾添加一个或其他内容,以使输出为 shape [128, x, 512]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章