【发布时间】:2019-06-11 19:58:54
【问题描述】:
我正在尝试创建一个 tensorflow lite 文本多类分类模型。我主要是从这里复制代码:https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/keras/basic_text_classification.ipynb
在 tensorflow 中似乎一切正常,但是当我尝试将保存 h5 模型转换为 Tensorflow Lite 时,我收到此错误:
ValueError: None is only supported in the 1st dimension. Tensor 'embedding_input' has invalid shape '[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)
我猜是嵌入层的问题?我能做些什么来解决它?
【问题讨论】:
-
你在哪里定义你引用的张量'embedding_input'?
-
我没有在任何地方声明...我假设它来自
model.add(keras.layers.Embedding(vocab_size, 16)) -
好的。 vocab_size 是什么意思?
-
字典中的单词数,已添加到帖子
标签: python tensorflow keras deep-learning tensorflow-lite