【问题标题】:Tensorflow lite example with custom model - "input_product_scale < output_scale was not true"带有自定义模型的 TensorFlow lite 示例 - “input_product_scale < output_scale 不正确”
【发布时间】:2018-05-10 02:24:24
【问题描述】:

如何重现:
使用命令重新训练移动网络:

python tensorflow/tensorflow/examples/image_retraining/retrain.py 
—image_dir (data-pwd) 
—learning_rate=0.001 —testing_percentage=20 
—validation_percentage=20 —train_batch_size=32 
—validation_batch_size=-1 —flip_left_right True 
—random_scale=30 —random_brightness=30 
—eval_step_interval=100 —how_many_training_steps=200 
—architecture mobilenet_1.0_224_quantized —default_ranges_min=0 
—default_ranges_max=6 —std_values=224 
—mean_values=224  

mean valuesstd_values 并没有真正的不同 - 尝试了不同的组合。
然后我像这样转换了生成的 .pb 文件:

bazel-bin/tensorflow/contrib/lite/toco/toco --input_file=(path)/output_graph.pb --input_format=TENSORFLOW_GRAPHDEF 
--output_format=TFLITE 
--output_file=./mobilenet_quantized_224.tflite --inference_type=QUANTIZED_UINT8 
--input_type=QUANTIZED_UINT8 --input_array=Placeholder --output_array=final_result 
--input_shape=1,224,224,3
--output_array=final_result --input_shape=1,224,224,3

然后我在两个股票应用程序中都替换了:iOS 简单和 Android 相机示例应用程序的 tflite 模型与生成的模型。这会导致相同的错误:

错误:
安卓:

Can not allocate memory for the given inputs: 
tensorflow/contrib/lite/kernels/kernel_util.cc:34 
input_product_scale < output_scale was not true.

iOS:

/Library/Developer/CoreSimulator/Devices/10888914-22EB-4CA7-B019-F95D5A8A6F5C/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles

nnapi error: unable to open library libneuralnetworks.so
Loaded model resolved reportertensorflow/contrib/lite/kernels
/kernel_util.cc:34 input_product_scale < output_scale was not 
true.Failed to allocate tensors!(lldb) 

问题:
如何解决...错误? :)

在我添加赏金时进行编辑: 目标是获得有关如何重新训练模型并使其与 tensorflow lite 一起运行的解释。我知道这是非常新的内容,但我在文档中不断出现错误。

【问题讨论】:

    标签: tensorflow tensorflow-lite


    【解决方案1】:

    以下内容不适合您吗?

    bazel-bin/tensorflow/contrib/lite/toco/toco --input_file=(path)/output_graph.pb --input_format=TENSORFLOW_GRAPHDEF --output_format=TFLITE --output_file=./mobilenet_quantized_224.tflite - -inference_type=QUANTIZED_UINT8 --input_type=QUANTIZED_UINT8 --input_array=占位符 --output_array=final_result --input_shape=1,224,224,3 --mean_values=128 --std_values=128 --default_ranges_min=0 --default_ranges_max=6

    我已经重现了您看到的错误,并且能够使用以下命令使其正常工作:

    python tensorflow/tensorflow/examples/image_retraining/retrain.py \
      --image_dir /tmp/flower_photos \
      --learning_rate=0.001 \
      --testing_percentage=20 \
      --validation_percentage=20 \
      --train_batch_size=32 \
      --validation_batch_size=-1 \
      --flip_left_right True \
      --random_scale=30 \
      --random_brightness=30 \
      --eval_step_interval=100 \
      --how_many_training_steps=200 \
      --architecture mobilenet_1.0_224_quantized
    

    bazel-bin/tensorflow/contrib/lite/toco/toco \
      --input_file=/tmp/output_graph.pb \
      --input_format=TENSORFLOW_GRAPHDEF \
      --output_format=TFLITE \
      --output_file=/tmp/mobilenet_quantized_224.tflite \
      --inference_type=QUANTIZED_UINT8 \
      --input_type=QUANTIZED_UINT8 \
      --input_array=Placeholder \
      --output_array=final_result \
      --input_shape=1,224,224,3 \
      --mean_value=128 \
      --std_value=128 \
      --default_ranges_min=0 \
      --default_ranges_max=6
    

    让我知道这是否适合你。

    【讨论】:

    • 不幸的是没有 - 如前所述,我仍然收到错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多