【发布时间】:2022-01-01 15:54:17
【问题描述】:
我正在使用 Tensorflow 2.7.0 及其新的TextVectorization 层。然而,在这个简单的例子中,有些事情并不完全正确:
import tensorflow as tf
import numpy as np
X = np.array(['this is a test', 'a nice test', 'best test this is'])
vectorize_layer = tf.keras.layers.TextVectorization()
vectorize_layer.adapt(X)
emb_layer = tf.keras.layers.Embedding(input_dim=vectorize_layer.vocabulary_size()+1, output_dim=2, input_length=4)
flatten_layer = tf.keras.layers.Flatten()
dense_layer = tf.keras.layers.Dense(1)
model = tf.keras.models.Sequential()
model.add(vectorize_layer)
model.add(emb_layer)
model.add(flatten_layer)
#model.add(dense_layer)
model(X)
到目前为止,这有效。我用词制作整数,嵌入它们,压平它们。但是如果我想在展平后添加一个Dense 层(即取消注释一行),事情就会中断,我会从问题标题中收到错误消息。我什至使用了Embedding 层的input_length 参数,因为文档说我应该在使用embedding->flatten->dense 时指定它。但它只是不起作用。
你知道我如何使用Flatten 而不是GlobalAveragePooling1D 之类的东西让它工作吗?
非常感谢!
【问题讨论】:
标签: python tensorflow keras nlp embedding