问题描述
我正在努力使用适当的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 (将#修改为@)