1.多个输入数据构造
final_train_tokens=[]#输入1
final_train_poss=[]#输入2
final_train_labels=[]#标签
train_dataset = tf.data.Dataset.from_tensor_slices((final_train_tokens,final_train_poss))
dataset2 = tf.data.Dataset.from_tensor_slices(final_train_labels)
train_dataset = tf.data.Dataset.zip((train_dataset, dataset2))
2. 定义模型
def get_series_model(training):
tokens = tf.keras.Input(shape=(MAX_LENGTH), name=‘inputs1’)
positions = tf.keras.Input(shape=(MAX_LENGTH), name=‘inputs2’)
inputs = [tokens, positions]
…
output = tf.keras.layers.Dense(1, activation=‘sigmoid’, name=‘output’)(x)
return tf.keras.Model(inputs, output, name=‘model’)
3.模型训练
model.fit(
train_dataset,
validation_data=val_dataset,
epochs=epochs,
workers=4,
shuffle=True,
use_multiprocessing=True,
#callbacks=tf.keras.callbacks.EarlyStopping(patience=3, monitor=‘val_AUC’, mode=‘max’, restore_best_weights=True),
verbose=1
)
4.模型预测
result=model.predict([tokens,poss],batch_size=tokens.shape[0])