Я получил это сообщение об ошибке при запуске приложения. Он падает через несколько секунд после запуска приложения.

05-28 09:05:29.791 15453-15472/my.xxxxx.androidtensorflowbirdexample A/native: tensorflow_jni.cc:304 Error during inference: Invalid argument: No OpKernel was registered to support Op 'DecodeJpeg' with these attrs
                                                                                     [[Node: DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, dct_method="", fancy_upscaling=true, ratio=1, try_recover_truncated=false](DecodeJpeg/contents)]]
05-28 09:05:29.791 15453-15472/my.xxxxx.androidtensorflowbirdexample A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 15472 (InferenceThread)

                                                                                [ 05-28 09:05:29.796 15453:15503 E/         ]
                                                                                [android_ws] Format: 5, Width: 1080, Height: 1620


                                                                                [ 05-28 09:05:29.796 15453:15503 E/         ]
                                                                                [android_ws] Format: 5, Width: 1080, Height: 1620
0
Nurdin 28 Май 2017 в 04:22

2 ответа

Лучший ответ

Вы должны преобразовать выходной график в оптимизированный или квантованный график.

Сначала соберите соответствующие инструменты для конвертации:

Для оптимизированного графика,

bazel build tensorflow/python/tools:optimize_for_inference

Для квантованного графа

bazel build tensorflow/tools/quantization:quantize_graph

А затем конвертируем ваш переобученный график в нужный формат:

Переподготовка -> оптимизирована

tensorflow/bazel-bin/tensorflow/python/tools/optimize_for_inference \
--input=train/output/flower_photos/retrained_graph.pb \
--output=train/output/flower_photos/optimized_graph.pb \
--input_names=Mul \
--output_names=final_result

Оптимизировано -> квантовано

bazel-bin/tensorflow/tools/quantization/quantize_graph \
--input=train/output/flower_photos/optimized_graph.pb \
--output=train/output/flower_photos/rounded_graph.pb \
--output_node_names=final_result \
--mode=weights_rounded

Вы должны использовать подходящее имя графика, которое у вас есть, и имена узлов ввода / вывода могут отличаться, если вы создали график с нуля.

Для получения дополнительной информации, пожалуйста, обратитесь к: https://petewarden.com/2016/09/27/tensorflow -для - мобильные поэты / (это немного устарело, но вы можете получить отличный обзор реализации Android)

1
JP Kim 5 Июн 2017 в 03:41

Похоже, ваша версия Android или мобильный процессор не поддерживают библиотеку Tensorflow JNI. Вы можете проверить как свою версию Android, так и ваш мобильный процессор.

-2
Azhar K Mustapha 4 Июн 2017 в 15:03