Python 张量';嵌入输入';具有无效的形状';[无,无]';
我试图创建一个tensorflow lite文本多类分类模型。我主要从这里复制代码: 在tensorflow中似乎一切正常,但当我尝试将save h5模型转换为tensorflow Lite时,出现以下错误:Python 张量';嵌入输入';具有无效的形状';[无,无]';,python,tensorflow,keras,deep-learning,tensorflow-lite,Python,Tensorflow,Keras,Deep Learning,Tensorflow Lite,我试图创建一个tensorflow lite文本多类分类模型。我主要从这里复制代码: 在tensorflow中似乎一切正常,但当我尝试将save h5模型转换为tensorflow Lite时,出现以下错误: ValueError:仅在第1维度中支持无。张量“嵌入输入”具有无效形状“[None,None]”。 这就是我的代码的样子: vocab_size = 15000 # of words in dictionary model = keras.Sequential() model.add(
ValueError:仅在第1维度中支持无。张量“嵌入输入”具有无效形状“[None,None]”。
这就是我的代码的样子:
vocab_size = 15000 # of words in dictionary
model = keras.Sequential()
model.add(keras.layers.Embedding(vocab_size, 16))
model.add(keras.layers.GlobalAveragePooling1D())
model.add(keras.layers.Dense(16, activation=tf.nn.relu))
model.add(keras.layers.Dense(7, activation=tf.nn.sigmoid))
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(...)
keras.models.save_model(model, graphFile)
converter = tf.contrib.lite.TFLiteConverter.from_keras_model_file(graphFile)
tflite_model = converter.convert()
open("converted.tflite", "wb").write(tflite_model)
我猜问题在于嵌入层?我能做些什么来修复它?转换需要知道输入张量的形状。只有第一维度(批次)可以是未知的(
None
)。在某些情况下,Keras不注释已知的张量形状。您可以通过传递input\u shapes
可选参数来指定输入形状:
converter = tf.contrib.lite.TFLiteConverter.from_keras_model_file(
graphFile,
input_shapes={'embedding_input': [1, vocab_size]}
)
另请参阅一个类似的问题:您在哪里定义了您所指的张量“嵌入输入”?我没有在任何地方声明它…我假设它来自
model.add(keras.layers.embedding(vocab\u size,16))
好的。词汇量是多少呢?#字典中的单词,添加到帖子中