繁体   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