Tensorflow: Используйте переобученные категории в Android Camera Demo

Созданный на 1 авг. 2016  ·  1Комментарий  ·  Источник: tensorflow/tensorflow

Проблемы GitHub предназначены для ошибок / проблем с установкой / запросов функций.
Для получения общей поддержки сообщества см. StackOverflow .
Чтобы упростить поиск и систематизацию ошибок и запросов функций, мы закрываем проблемы, которые считаются
выходит за рамки GitHub Issues и указывает людям на StackOverflow.

В случае ошибок или проблем с установкой, пожалуйста, предоставьте следующую информацию.
Чем больше информации вы предоставите, тем легче мы сможем предложить
помощь и совет.

Информация об окружающей среде

Операционная система: Docker в Windows

Установленная версия CUDA и cuDNN:
(пожалуйста, приложите вывод ls -l /path/to/cuda/lib/libcud* ):

Если установлен из бинарного пакета pip, укажите:

  1. Какой пакет pip вы установили.
  2. Вывод из python -c "import tensorflow; print(tensorflow.__version__)" .

Если установлен из исходников, предоставьте

  1. Хэш фиксации ( git rev-parse HEAD )
  2. Вывод bazel version

Действия по воспроизведению

  1. Успешно переобучайте новые данные с помощью Docker. Получите два переобученных файла retrained_graph.pb и retrained_labels.txt.
    https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/index.html?index=..%2F..%2Findex#5
  2. Попробуйте установить Bazel на Windows, но безуспешно. Но я нашел демоверсию Android, которой не нужен Bazel. Этот хорошо работает в Windows. Он может распознавать изображения в 1000 классов, предоставляемых ImageNet в камере реального времени Android.
    https://github.com/miyosuda/TensorFlowAndroidDemo

    Что вы пробовали?

Ссылка; https://github.com/tensorflow/tensorflow/issues/1269
Основываясь на предложениях, я попробовал следующие вещи:
1. Найдите coded_stream.h в разделе google/protobuf вашей сборки tensorflow и измените 64 на 256 в следующей строке:
статическая константа int kDefaultTotalBytesLimit = 64 << 20; // Изменяем 64 на 256 МБ
2. Измените только input_size на 299 и image_mean на 128 в TensorflowImageListener.java.
3. Перейдите к файлу tensorflow_jni.cc в демо-версии Android и измените его следующим образом:

  input_tensor_mapped(0, i, j, 0) =
      (static_cast<float>(src->red) - g_image_mean)/g_image_mean;
  input_tensor_mapped(0, i, j, 1) =
      (static_cast<float>(src->green) - g_image_mean)/g_image_mean;
  input_tensor_mapped(0, i, j, 2) =
      (static_cast<float>(src->blue) - g_image_mean)/g_image_mean;
  ++src;

std::vector<:pair i="47"> > input_tensors(
{{"Мул", input_tensor}});

std::vectorstd::string output_names({"softmax"});
4. Внесите следующие изменения в TensorflowImageListerner.java:
частная статическая финальная строка MODEL_FILE = "file:///android_asset/retrained_graph.pb";
частная статическая финальная строка LABEL_FILE =
"файл:///android_asset/retrained_labels.txt";

  1. Создайте демо-версию Android

Журналы или другой вывод, который был бы полезен

(Если журналы большие, пожалуйста, загрузите в виде вложения).
08-01 17:36:50.015 14978-15121/org.tensorflow.tensorflowdemo A/native: jni_utils.cc:107 Ошибка проверки: message->ParseFromZeroCopyStream(&adaptor)
08-01 17:36:50.015 14978-15121/org.tensorflow.tensorflowdemo A/libc: Фатальный сигнал 6 (SIGABRT), код -6 в tid 15121 (ImageListener)

Я знаю, что это проблема из-за несовместимости переменных Inception v3 и Inception 5h. Модель Android Demo, которую я использую, — Inception 5h, но модель, которую я использовал для обучения своих новых данных, — Inception 3v. Я пытался редактировать упомянутые здесь переменные: https://github.com/tensorflow/tensorflow/issues/1269.
Но я все еще получаю те же ошибки. Кто-нибудь может помочь мне объяснить, как адаптировать мои новые обученные данные, работающие в демо-версии Android?

>Все замечания

Такие вопросы лучше задавать на StackOverflow. Этот форум предназначен для сообщений об ошибках и тому подобного. Пожалуйста, задайте свой вопрос там, пометив «tensorflow».

Если у вас возникли проблемы с bazel, вы можете попробовать makefile tensorflow .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги