TypeError: Tensors in list passed to 'values' of 'ConcatV2' Op have types [<NOT CONVERTIBLE TO TENSOR>, float32] that don't all match.
我的源代码:
class batch_norm(object):
def __init__(self, epsilon=1e-5, momentum=0.9, name="batch_norm"):
with tf.variable_scope(name):
self.epsilon = epsilon
self.momentum = momentum
self.name = name
def __call__(self, x, w, b, train=True):
return tf.contrib.layers.batch_norm(x,
decay=self.momentum,
updates_collections=None,
epsilon=self.epsilon,
scale=True,
is_training=train,
scope=self.name), w, b
g_bn_d5 = batch_norm(name='g_bn_d5')
d5 = g_bn_d5(d5, d5_w, d5_b)
d5 = tf.concat([d5, e3], 3)
d5 = g_bn_d5(d5, d5_w, d5_b)
问题造成的原因 简单的说就是类型不匹配的问题 一个是元组 一个是numpy
# 注意g_bn_d5返回总共有三个结果 但是我的调用接收返回值的时候 却只有一个结果 所以在进行tf.concat()的时候 就报错了
解决答案:
将d5 = g_bn_d5(d5, d5_w, d5_b) 修改成 d5 , w5, b5 = g_bn_d5(d5, d5_w, d5_b) 即可