python - 尝试使用 toco 转换 TF 模型时出错
问题描述
我有一个 TF 模型,我需要将其转换为 int8 以便在嵌入式设备中实现。我正在尝试使用 toco 来转换它,但是我无法确定如何使用输入 args 正确实例化 toco:
<USER>:~/.local/bin$ python3 toco \
> --input_file=<PATH>/frozen_graph.pb \
> --output_file=<PATH>/tflite_graph.tflite \
> --input_format=TENSORFLOW_GRAPHDEF \
> --output_format=TFLITE \
> --inference_type=QUANTIZED_UINT8 \
> --output_arrays=Sidmoid \
> --input_arrays=IteratorGetNext \
> --input_shapes=1:16:16:1 \
> --mean_values=128 \
> --std_values=127
WARNING:tensorflow:From <USER>.local/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:198: retry (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Use the retry module or similar alternatives.
2018-04-27 11:40:33.699249: F tensorflow/contrib/lite/toco/model_cmdline_flags.cc:240] Check failed: mean_values.size() == model_flags->input_arrays_size()
Aborted (core dumped)
我了解mean_values
输入 arg 存在问题,但是我不了解以下内容的预期用途:
--mean_values="" string mean_values parameter for image models, comma-separated list of doubles, used to compute input activations from input pixel data. Each entry in the list should match an entry in --input_arrays.
我也尝试过",128,128,"
,因为我的解释是你不希望批量大小/通道暗淡的平均值,但文档说它需要一个输入,列表中的每个输入都应该匹配 input_arrays 中的一个元素。
我也不确定要为input_arrays
arg 放置什么,因为我看到的大多数代码示例都只是使用input
,但对我来说,您似乎需要图中节点的名称。
我想我在这里误解了一些东西,但我似乎无法弄清楚。任何帮助,将不胜感激!
解决方案
对于任何想知道的人来说,让我有点困惑的是文档:它说“Input_shapes”是一串“对应于--input_arrays的形状,冒号分隔......”但是尺寸仍然应该用逗号分隔:
bazel-bin/third_party/tensorflow/contrib/lite/toco/toco \
--input_file=<my_path>/frozen_eval_graph.pb \
--output_file=<my_path>/tflite_graph.tflite \
--input_format=TENSORFLOW_GRAPHDEF \
--output_format=TFLITE \
--inference_type=QUANTIZED_UINT8 \
--output_arrays=Sigmoid \
--input_arrays=Reshape \
--input_shapes=1,16,16,1 \
--mean_values=128 \
--std_values=127 \
--variable_batch=true
推荐阅读
- seo - 十月CMS博客分页内容重复问题
- sql - Django过滤表的结果与来自另一个表的匹配ID
- c# - 在 c# .net 中为 SKAdnetwork 生成签名广告
- javascript - 如何在 alpine js 中的 x-for 中设置 x-model 和 Input 字段的名称?
- ios - iOS 14 中的 WKWebView 崩溃
- laravel - 如何停止从 laravel 观察者执行控制器中的方法
- python - 通过 kubernetes python API 获取就绪探测状态
- istio - 如何从 istio 入口网关中删除或修改标头
- php - Elasticsearch 如何设置 top_hits 聚合结果的大小?
- ios - 与 WiFi 相比,为什么 Angular HTTP 请求在移动数据上的排队时间要长得多?