我的嵌入层的输出应该如何?从 Keras 到 PyTorch

青葱年少 pytorch 476

原文标题How should the output of my embedding layer look? Keras to PyTorch

我正在将 Keras 实现转换为 PyTorch 实现。在完全转换后,我的模型收敛速度不够快,尽管损失似乎确实在减少。当我回溯我的步骤时,我注意到有些奇怪关于我的嵌入层。让我解释一下数据:我有 4 个批次,每个批次的序列长度为 100,词汇大小为 83。我正在使用 ABC 表示法的歌曲,所以歌曲中可以有 83 个不同的符号它有 100 个符号长。所以现在我有一个形状 (4, 100) 的 ndarray,其中包含我的 4 首歌曲序列。我们称之为x。现在如果我将x传入 Keras 中的嵌入层:

tf.keras.layers.Embedding(83, 256, batch_input_shape=[4, None])(x).numpy()

我为每个批次获得了比在 PyTorch 中更“窄”的一组值,这会影响我的收敛吗?IE。第一批次的最小值是-0.04999,最大值是0.04999。现在如果我通过相同的x进入我的 PyTorch 嵌入层:

torch.nn.Embedding(4*100, 256)(torch.tensor(x)).detach().numpy()

我为每个批次获得了一组“更广泛”的值。最大值为3.3865,最小值为-3.917

我的问题是,我是否应该担心这是我的模型无法正确收敛的原因?

原文链接:https://stackoverflow.com//questions/71417255/how-should-the-output-of-my-embedding-layer-look-keras-to-pytorch

回复

我来回复
  • 暂无回复内容