我将权重从 pytorch 模型转换为 tf2 模型。为了验证结果,我在 conv2d 之后为 pytorch 原始模型和 tf2 模型导出了特征图。 然而,tf2 模型的特征图在地图的顶部和左侧有黑条,而 pytorch 特征图没有这些黑条。 enter image description here
conv2d的pytorch代码为
nn.Conv2d(1, 56, kernel_size=5, padding=5//2)
tensorflow 构建是
tensorflow.keras.layers.Conv2D(56, 5, padding="same")(inp)
根据 Manualy convert pytorch weights to tf.keras weights for convolutional layer 的建议,我什至在 tensorflow 模型中添加了 zeropadding 层
x = tensorflow.keras.layers.ZeroPadding2D(padding=((2,2)))(inp)
x2 = tensorflow.keras.layers.Conv2D(56, 5, padding="valid")(x)
但是,黑条仍然存在。我对这个问题一无所知> <。 pytorch权重到tensorflow权重的转换过程如下:
onnx_1_w_num = onnx_l.weight.data.permute(2,3,1,0).numpy()
onnx_1_b_num = onnx_l.bias.data.numpy()
tf_l.set_weights([onnx_1_w_num,onnx_1_b_num])
感谢阅读。