使用keras將兩個CNN串連起來

2024-05-20 11:36:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图融合两个CNN,但当我使用concatenate时,收到以下错误:

Traceback (most recent call last):
  File "vggFace_MM.py", line 57, in <module>
    fuse_layer = concatenate([stream_1, stream_2])
  File "/usr/local/lib/python2.7/dist-packages/keras/layers/merge.py", line 508, in concatenate
    return Concatenate(axis=axis, **kwargs)(inputs)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 596, in __call__
    output = self.call(inputs, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keras/layers/merge.py", line 283, in call
    return K.concatenate(inputs, axis=self.axis)
  File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 1723, in concatenate
    return tf.concat([to_dense(x) for x in tensors], axis)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 1075, in concat
    dtype=dtypes.int32).get_shape(
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 669, in convert_to_tensor
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 176, in _constant_tensor_conversion_function
    return constant(v, dtype=dtype, name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 165, in constant
    tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape))
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 367, in make_tensor_proto
    _AssertCompatible(values, dtype)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 302, in _AssertCompatible
    (dtype.name, repr(mismatch), type(mismatch).__name__))
TypeError: Expected int32, got list containing Tensors of type '_Message' instead.

这是我的代码:

^{pr2}$

我使用的是VggFace,所以vgg_模型1和vgg_2是同一个CNN,但是每个都有不同的输入。在


Tags: nameinpylibpackagesusrlocaldist
1条回答
网友
1楼 · 发布于 2024-05-20 11:36:40

我认为你实际上需要使用merge,而不是使用concatenate

按照this link答案获取更多详细信息。在

请跟随this link获取有关merge的更多详细信息


要详细说明,你需要为模型创建2个头部,而不是CNN的层。 所以Model1将你的面部情绪数据作为输入,而{}则接受其他类型的输入

因此,要创建这两个头部以提供组合输出,您需要创建第三个模型,该模型将合并这两个模型以给出单个组合输出。在

可以按如下方式进行

multi_modal = Sequential()
multi_modal.add(Merge([Model1, Model2], mode='concat'))

相关问题 更多 >