假設我有一個基本模型接受兩個輸入并輸出單個值:
# define two input
input1 = keras.Input(shape=(100,), dtype=tf.int8)
input2 = keras.Input(shape=(20,), dtype=tf.int8)
# DNN for onehot feature
dense1 = Dense(32, activation='relu')(input1)
dense2 = Dense(4, activation='relu')(input2 )
# output
output = Dense(1, activation='sigmoid')(Concatenate(axis=1)([dense1 , dense2 ]))
# define base model
item_base_model = keras.Model(inputs=[input1, input2], outputs=output, name="base_model")
然后我有一個模型將 (None,100) 和 (None, 20) 陣列作為輸入:
# define input list
input1_list = keras.Input(shape=(None, 100],), dtype=tf.int8)
input2_list = keras.Input(shape=(None, 20,), dtype=tf.int16)
我想問一下,如何為 input1_list 和 input2_list 中的每個輸入呼叫基于模型,并將它們的輸出作為具有形狀(無,)的張量。最后,我將訓練整個模型
uj5u.com熱心網友回復:
這樣的事情應該作業 -
out = tf.keras.layers.Lambda(
lambda x: tf.map_fn(item_base_model, x, fn_output_signature=tf.TensorSpec(shape=[None, 1], dtype=tf.float32))
)([input1_list, input2_list])
new_model = tf.keras.Model(inputs=[input1_list, input2_list], outputs=out, name="new_model")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/401992.html
下一篇:在多個資料集上訓練神經網路模型
