У меня есть два входа для модели:
input_img = Input(shape=(self.img_rows, self.img_cols, self.channels,))
input_cond = Input(shape=(self.cond_dim,))
Их формы различны, я хочу расширить каждый элемент input_cond
в изображение того же размера, что и [img_rows,img_cols]
.
Я написал:
def conv_cond_concat(tensors):
x_shapes = tensors[0].get_shape()
y_shapes = tensors[1].get_shape()
print (x_shapes,y_shapes)
return tensors[1]*K.ones([x_shapes[0], x_shapes[1], x_shapes[2], y_shapes[1]])
Тогда:
lamb_layer = Lambda(conv_cond_concat)
cond_img = lamb_layer([input_img,input_cond])
Я получил жалобы, как:
File "/homeXXXXanaconda2/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py", line 708, in ones
return variable(tf.constant_initializer(1., dtype=tf_dtype)(shape),
File "/home/XXXXanaconda2/lib/python2.7/site-packages/tensorflow/python/ops/init_ops.py", line 200, in __call__
self.value, dtype=dtype, shape=shape, verify_shape=verify_shape)
File "/home/XXXanaconda2/lib/python2.7/site-packages/tensorflow/python/framework/constant_op.py", line 208, in constant
value, dtype=dtype, shape=shape, verify_shape=verify_shape))
File "/home/XXXanaconda2/lib/python2.7/site-packages/tensorflow/python/framework/tensor_util.py", line 380, in make_tensor_proto
if shape is not None and np.prod(shape, dtype=np.int64) == 0:
File "/home/XXXanaconda2/lib/python2.7/site-packages/numpy/core/fromnumeric.py", line 2566, in prod
out=out, **kwargs)
File "/home/XXXanaconda2/lib/python2.7/site-packages/numpy/core/_methods.py", line 35, in _prod
return umr_prod(a, axis, dtype, out, keepdims)
TypeError: __long__ returned non-long (type NoneType)
Как это правильно сделать?
Спасибо