DeeplabV3 MobileNetV2 Квантование для USB Coral TPU с настраиваемым размером входного сигнала ((100, 100) вместо (513, 513))

Я выполнял шаги, указанные в .com / tensorflow / models / blob / 394baa9f21424d3522ccfbdcee8acd3840891ff6 / research / deeplab / g3doc / quantize.md, чтобы квантовать модель DeeplabV3 MobileNetV2 для USB Coral TPU, но я не могу заставить ее работать.

Даже когда я начинаю с моделей, представленных внизу (а не с 8_bits, необработанных моделей), я не могу заставить его работать. И у меня даже возникают разные проблемы для обеих моделей.

Для deeplabv3_mnv2_pascal_train_aug:
- Сценарий deeplab/train.py для квантования работает успешно.
- Шаг сценариев deeplab/export_model.py работает.
- tflite_convert тоже работает.
- Компилятор EdgeTPU получает загадочное сообщение об ошибке: Internal compiler error. Aborting!

Для deeplabv3_mnv2_dm05_pascal_trainaug: - Скрипт deeplab/train.py для квантования запусков получает: ValueError: Total size of new array must be unchanged for MobilenetV2/Conv/weights lh_shape: [(3, 3, 3, 16)], rh_shape: [(3, 3, 3, 32)] Я попробовал это решение безуспешно.

  • При прямом использовании файла .pb deeplab/train.py с обучением с учетом квантования терпит неудачу из-за сбоя Python.

  • Пост-квантование в python работает напрямую.

  • edgetpu_compiler работает.
  • Но после запуска на TPU мы получаем 0,87 TPS, скорее всего потому, что edgetpu-converter не может преобразовать все в edgtpu.

Любое руководство, чтобы заставить его работать, было бы здорово. Я также открыт для решений, не следуя руководству от tenorflow.


person Saturnin Pugnet    schedule 12.05.2020    source источник


Ответы (1)


Я считаю, что вы обратились к нам, и мой коллега уже поделился процедурой, но я оставлю ее здесь, чтобы другие могли сослаться на нее:

python deeplab/export_model.py \
    --checkpoint_path=../../deeplabv3_mnv2_dm05_pascal_trainaug_8bit/model.ckpt \
    --quantize_delay_step=0 \
    --crop_size=55 \
    --crop_size=55 \
    --model_variant="mobilenet_v2" \
    --decoder_output_stride="" \
    --export_path=../../deeplabv3_mnv2_dm05_pascal_trainaug_8bit/frozen_inference_graph.pb \
    --depth_multiplier=0.5 
tflite_convert \
  --graph_def_file=../../frozen_inference_graph.pb \
  --output_file=../../frozen_inference_graph.tflite \
  --output_format=TFLITE \
  --input_shape=1,55,55,3 \
  --input_arrays="MobilenetV2/MobilenetV2/input" \
  --inference_type=QUANTIZED_UINT8 \
  --inference_input_type=QUANTIZED_UINT8 \
  --std_dev_values=128 \
  --mean_values=128 \
  --change_concat_input_ranges=true \
  --output_arrays="ArgMax"
person Nam Vu    schedule 02.06.2020