1

这是 Siamese LSTM 神经网络:

    first_masking_layer = Masking(mask_value=0.0)
    first_lstm_layer = LSTM(46, return_sequences=True, recurrent_dropout=0.75, kernel_regularizer=l2(1e-4), kernel_initializer='he_normal')
    first_bacth_norm = BatchNormalization()
    first_dropout_layer = Dropout(0.75)

    reference_input_layer = Input(shape=(23, None))
    reference_input_processed = first_masking_layer(reference_input_layer)
    reference_input_processed = first_lstm_layer(reference_input_processed)
    reference_input_processed = first_bacth_norm(reference_input_processed)
    reference_input_processed = first_dropout_layer(reference_input_processed)

    query_input_layer = Input(shape=(23, None))
    query_input_processed = first_masking_layer(query_input_layer)
    query_input_processed = first_lstm_layer(query_input_processed)
    query_input_processed = first_bacth_norm(query_input_processed)
    query_input_processed = first_dropout_layer(query_input_processed)

    concat_layer = concatenate([reference_input_processed, query_input_processed])
    masking_layer = Masking(mask_value=0.0)(concat_layer)
    lstm_layer = LSTM(23, return_sequences=False, recurrent_dropout=0.7, kernel_regularizer=l2(1e-4), kernel_initializer='he_normal')(masking_layer)
    lstm_layer = BatchNormalization()(lstm_layer)
    lstm_layer = Dropout(0.75)(lstm_layer)
    prediction = Dense(2, activation="softmax")(lstm_layer)

    siamese_net = Model(inputs=[reference_input_layer, query_input_layer], outputs=prediction)
    print(siamese_net.summary())
    opt = Nadam(lr=2e-3)
    siamese_net.compile(optimizer=opt, loss='binary_crossentropy', metrics=['acc'])
    history_of_model = siamese_net.fit([x_train_left, x_train_right], y_train, epochs=10, verbose=1, validation_split=0.2, shuffle=True, batch_size=64)
    siamese_net.save(model_name)

该模型接受两个在线签名,原始签名和查询(原始或伪造),并输出查询签名是否真实。运行代码时,出现以下错误reference_input_processed

TypeError: '>' not supported between instances of 'NoneType' and 'float'

我认为这是由于输入形状是(23, None). 数据没有填充,因此我有None形状。

有没有办法解决这个错误,还是必须填充数据?

4

0 回答 0