微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用tf.nn.conv2d_transpose重新创建tf.layers.conv2d_transpose

如何解决使用tf.nn.conv2d_transpose重新创建tf.layers.conv2d_transpose

我正在努力使用适当的tf.nn.Conv2d_transpose来正确地重新创建tf.layers.conv2d_transpose的功能。事实是,这两个版本中使用相同权重的输出是不同的,所以我在犯一些错误

定义conv2d_layer的代码如下:

slim.conv2d_transpose(
    input,1,kernel_size=[3,3],stride=2,padding="SAME",activation_fn=None,normalizer_fn=None
)

还有定义我对conv2d_transpose的实现的代码(分配权重并从具有上一层的网络中对权重进行偏置之后)

def prediction_layer(self,inputs,layer_name,strides,outputs):
    dyn_input_shape = tf.shape(inputs)

    batch_size = dyn_input_shape[0]
    out_h = dyn_input_shape[1] * strides
    out_w = dyn_input_shape[2] * strides

    out_shape = tf.stack([batch_size,out_h,out_w,outputs])

    pred = tf.nn.Conv2d_transpose(inputs,self.weights[layer_name + "/weights"],strides=[1,1],output_shape=out_shape)
    pred = tf.nn.bias_add(pred,self.biases[layer_name + "/biases"])

    return pred

#deFinition of my conv2d_transpose
self.prediction_layer(inputs,layer_name="pose/part_pred/block4",strides=2,outputs=1)

有什么建议吗?

非常感谢您。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。