首页 > 解决方案 > 该层的所有输入都应该是张量

问题描述

ValueError:使用不是符号张量的输入调用层 concatenate_1。接收类型:. 完整输入:[9]。该层的所有输入都应该是张量。

上线问题paired_encoders_merger = concatenate(paired_encoder_size)

def __init__(self, input_size=18, paired_encoder_size=9, common_encoder_size=126, size_class=10):

    inputs = []
    [inputs.append(Input(shape=(input_size,1), name=('input_'+str(i)))) for i in range(7)]

    paired_encoders = []
    for i in range(7):
        paired_encoders.append(Dense(paired_encoder_size, activation='relu')(inputs[i]))

    paired_encoders_merger = concatenate(paired_encoder_size)
    common_encoder = Dense(common_encoder_size, activation='relu')(paired_encoders_merger)
    classes = Dense(size_class, activation='relu')(common_encoder)
    common_decoded = Dense(common_encoder_size, activation='relu')(classes)
    paired_decoded = []
    for i in range(7):
        paired_decoded.append(Dense(paired_encoder_size, activation='relu')(common_decoded))        

    out_pair = []

    for i in range(7):
        out_pair.append(Dense(input_size, activation='relu', name=('out_'+str(i)))(paired_decoded[i]))

    out_merger = concatenate(out_pair)

    self.model = Model(inputs=inputs,  outputs=out_merger)
    self.model.compile(optimizer='ADAM', loss='binary_crossentropy')

标签: pythontensorflowkeras

解决方案


https://keras.io/layers/merge/#concatenate

您必须提供张量列表到Concatenate(). 您正在提供一个整数paired_encoder_size。尝试通过paired_encoders


推荐阅读