簡體   English   中英

如何將此 model 轉換為 Keras 順序 model?

[英]How to convert this model to a Keras sequential model?

我想將此 model 作為順序模式,但不確定如何。 我想采用典型的 model.sequential() 然后 model.add 風格。 但我不知道如何使用自動編碼器來做到這一點。

query_layer = tf.keras.layers.Conv1D(filters=100, kernel_size=4, padding='same')
value_layer = tf.keras.layers.Conv1D(filters=100, kernel_size=4, padding='same')

attention = tf.keras.layers.Attention()
concat = tf.keras.layers.Concatenate()

cells = [tf.keras.layers.LSTMCell(256), tf.keras.layers.LSTMCell(64)]
rnn = tf.keras.layers.RNN(cells)
output_layer = tf.keras.layers.Dense(1)

for batch in ds['train'].batch(32):
    text = batch['text']
    embeddings = embedding_layer(vectorize_layer(text))
    query = query_layer(embeddings)
    value = value_layer(embeddings)
    query_value_attention = attention([query, value])
    print("Shape after attention is (batch, seq, filters):", query_value_attention.shape)
    attended_values = concat([query, query_value_attention])
    print("Shape after concatenating is (batch, seq, filters):", attended_values.shape)
    logits = output_layer(rnn(attended_values))
    loss = tf.keras.losses.binary_crossentropy(tf.expand_dims(batch['label'], -1), logits, from_logits=True)
    print(loss)

這是不可能的,因為 model 的拓撲不是線性的。

嘗試功能 API:

input = tf.keras.Input(tf.shape(text))
embeddings = embedding_layer(vectorize_layer(text))
query = query_layer(embeddings)
value = value_layer(embeddings)
query_value_attention = attention([query, value])
attended_values = concat([query, query_value_attention])
logits = output_layer(rnn(attended_values))
model = tf.keras.Model(input, logits)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM