如何解决使用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 举报,一经查实,本站将立刻删除。