Как создать модель, легко конвертируемую в TensorFlow Lite? - PullRequest
0 голосов
/ 10 марта 2020

Как создать модель TensorFlow, которую можно преобразовать в TensorFlow Lite (tflite) и использовать в приложении Android?

Следуя примерам в Google ML Cra sh Курс, который я создал классификатор и обучил модель. Я экспортировал модель как сохраненная модель . Я хотел преобразовать модель в файл .tflite и использовать его для вывода на Android.

Скоро (на самом деле позже) я понимаю, что моя модель использует неподдерживаемая операция - 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 оператор?

TensorFlow Lite Model

1 Ответ

0 голосов
/ 19 апреля 2020

Используйте Keras Sequential API вместо Estimator API .

Если ваша модель более сложная, попробуйте Функциональный API Keras .

Оценщик - это высокоуровневый 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'])

И ее схема. Сравните это с вопросом в вопросе:

enter image description here

Полный пример того, как преобразовать модель в tflite , см. В моем проекте для классифицирует косые нули и восьмерки .

...