2017-11-26 2 views
0

Wie zu reproduzieren:
einen MobileNet mit Befehl umschulen:Tensorflow lite Beispiel mit benutzerdefinierten Modell - "input_product_scale <output_scale war nicht wahr"

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 values und std_values nicht wirklich einen Unterschied machen - versuchte verschiedene Kombinationen.
dann konvertierte ich die resultierende .pb Datei wie folgt:

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 

Dann habe ich in beiden Lager-Anwendungen ersetzt: iOS einfach und Android Kamera Beispiel App, das tflite Modell mit dem erzeugten ein. Dies führt sowohl zu den gleichen Fehler:

Fehler:
Android:

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) 

Frage:
Wie zu lösen ... Fehler? :)

bearbeiten, wie ich eine Prämie bin und füge hinzu: Das Ziel wäre, um eine Erklärung zu bekommen, wie ein Modell umschulen und bekommt es mit tensorflow lite läuft. Ich bin mir bewusst, dass dies sehr neu ist, aber ich bin links und rechts auf Fehler mit den Dokumenten laufen.

Antwort

1

Funktioniert das Folgende nicht für Sie?

bazel-bin/tensorflow/Contrib/Lite/toco/toco --input_file = (Pfad) /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 = Platzhalter --output_array = final_result --input_shape = 1,224,224,3 --mean_values ​​= 128 = 128 --std_values ​​--default_ranges_min = 0 --default_ranges_max = 6

Ich habe den angezeigten Fehler reproduziert und konnte ihn mit den folgenden Befehlen ausführen:

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 

und

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 

Lassen Sie mich wissen, ob das für Sie arbeitet.

+0

leider nicht - wie beschrieben bekomme ich immer noch den Fehler – dv3

Verwandte Themen