将Conv2D从PyTorch代码转换为Tensorflow

2024-04-25 09:54:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下PyTorch层定义:

self.e_conv_1 = nn.Sequential(
    nn.ZeroPad2d((1, 2, 1, 2)),
    nn.Conv2d(in_channels=3, out_channels=64, kernel_size=(5, 5), stride=(2, 2)),
    nn.LeakyReLU(),
)

我希望在Tensorflow中有相同的精确层声明。我怎么才能做到呢

self.e_conv_1 = tf.keras.Sequential([
  layers.Conv2D(64, kernel_size=(5, 5), activation=partial(tf.nn.leaky_relu, alpha=0.01), padding='same', strides=(1, 2))
])

应该是上面的代码吗?我认为至少跨步和垫子是不一样的

提前感谢任何提供帮助的人


Tags: inselfsize定义tfnnpytorchout
1条回答
网友
1楼 · 发布于 2024-04-25 09:54:09

我认为可以根据tenssorflow documentation以这种方式使用层:

tf.keras.Sequential([
    layers.ZeroPadding2D(padding=((1,2), (1,2)))
    layers.Conv2D(64, kernel_size=(5, 5), activation=partial(tf.nn.leaky_relu, 
    alpha=0.01), padding='valid', strides=(2, 2))
])

主要区别在于torch零填充和tensroflow零填充参数之间。 在本文中,参数包括:

m = nn.ZeroPad2d((left, right, top, bottom))

在tensorflow中:

tf.keras.layers.ZeroPadding2D(padding=((top,bottom),(left,right)))

相关问题 更多 >