微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Siamese 网络显示 ValueError

如何解决Siamese 网络显示 ValueError

我将 Siamese 网络用于不同域的 2000 个特征。我想在相似的对上训练并在不同的特征对上进行测试。我在尝试拟合模型时遇到值错误

def get_siamese_conv_unit(input):
    encoder = models.Sequential(name='encoder')
    encoder.add(layer=layers.Dense(units=64,activation=activations.relu))
    encoder.add(layers.Dropout(0.1))
    encoder.add(layer=layers.Dense(units= 32,activation=activations.relu))
    encoder.add(layers.Flatten())
    encoder.summary()
    return encoder
def get_classifier_model(input_shape):
    left_input = Input(input_shape)
    right_input = Input(input_shape)
    model = get_siamese_conv_unit(input_shape)
    encoded_l = model(left_input)
    encoded_r = model(right_input)
    L1_layer = Lambda(lambda tensors:k.backend.abs(tensors[0] - tensors[1]))
    L1_distance = L1_layer([encoded_l,encoded_r])
    prediction = Dense(1,activation='sigmoid',bias_initializer=initialize_bias)(L1_distance)
    siamese_net = Model(inputs=[left_input,right_input],outputs=prediction)
    return siamese_net

 # After optimization
model.fit([left_input,target,epochs=100,verbose=1,validation_data=[test1,test2])

我收到以下错误

Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. 
Expected to see 2 array(s),for inputs ['input_17','input_18'] 
but instead got the following list of 1 arrays

left_input,right_input 和 target 的类型都是数组

解决方法

我通过在拟合时添加测试标签纠正了我的错误:

model.fit([left_input,right_input],target,epochs=100,verbose=1,validation_data=([test1,test2],ytest))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。