问题描述
这是 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_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
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)