首页 > 解决方案 > Pytorch nn.Conv1d 输出的结果与 Tensorflow 2.1 tensorflow.keras.layers.Conv1D 不同

问题描述

我正在尝试将我在 PyTorch 中创建的 seq-to-seq 模型预先生成到 Tensorflow 2.1。Pytorch 模型完美运行,但在 tf 2.1 中实现的相同模型的输出非常糟糕。经过大量调试,我发现由于nn.Conv1d和tf.keras.layers.Conv1D的实现方式不同,可能会出现不好的结果。

在我的 Pytorch 模型中,我使用:

  self.conv = nn.Conv1d(in_channels=ic, out_channels=oc, kernel_size=k, stride=1, padding=0, bias=False)

在我的 Tensorflow 模型中,我使用:

  self.conv = tf.keras.layers.Conv1D(filters=filters, kernel_size=kernel_size, padding='same', use_bias=use_bias)

有谁知道我如何在 tf 中产生与我的 Pytorch 代码相同的结果?还有其他功能可以帮助我吗?有任何想法吗?

先感谢您!!

标签: tensorflowpytorchtensorflow2.0keras-layertf.keras

解决方案


推荐阅读