如何创建可轻松转换为 TensorFlow Lite 的模型?

How to create a model easily convertible to TensorFlow Lite?

如何创建可转换为 TensorFlow Lite (tflite) 并可在 Android 应用程序中使用的 TensorFlow 模型?

按照 Google 机器学习速成课程中的示例,我创建了一个分类器并训练了一个模型。我已将模型导出为 已保存模型 。我想将模型转换为 .tflite 文件并将其用于 推断 Android.

很快(实际上是后来)我了解到我的模型使用 unsupported operation - ParseExampleV2.

这是我用来训练模型的分类器:

classifier = tf.estimator.DNNClassifier(
        feature_columns=[tf.feature_column.numeric_column('pixels', shape=WIDTH * HEIGHT)],
        n_classes=NUMBER_OF_CLASSES,
        hidden_units=[40, 40],
        optimizer=my_optimizer,
        config=tf.estimator.RunConfig(keep_checkpoint_max=1),
        model_dir=MODEL_DIR)

有没有一种方法可以训练不使用此 tf.ParseExampleV2 运算符的模型?

使用Keras Sequential API instead of Estimator API.

如果您的模型更复杂,请尝试 Keras functional API

Estimator 是高级 API,它增加了模型的复杂性。

这是一个顺序模型:

model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(1024, input_dim=WIDTH*HEIGHT, activation='relu'))
model.add(tf.keras.layers.Dense(1024, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))

optimizer = tf.keras.optimizers.Adam(learning_rate=rate)
model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])

及其架构。与问题中的比较:

有关如何将模型转换为 tflite 的完整示例,请参阅我的 classifying slashed-zeros and eights 项目。