Python 3.x Tensorflow Lite:如何检查输入层形状和输入层类型,以便将pb转换为tflite

Python 3.x Tensorflow Lite:如何检查输入层形状和输入层类型,以便将pb转换为tflite,python-3.x,tensorflow,tensorflow-lite,toco,Python 3.x,Tensorflow,Tensorflow Lite,Toco,如何填写转换tflite的正确参数 下面是失败消息和pb信息,如下所示 (1)失败消息 ~/tensorflow/pkg/tensorflow$ bazel-bin/tensorflow/contrib/lite/toco/toco \ --input_format=TENSORFLOW_GRAPHDEF \ --input_file='retrained_graph.pb' \ --output_format=TFLITE \ --output_file='retrained_graph.tf

如何填写转换tflite的正确参数

下面是失败消息和pb信息,如下所示

(1)失败消息

~/tensorflow/pkg/tensorflow$ bazel-bin/tensorflow/contrib/lite/toco/toco \
--input_format=TENSORFLOW_GRAPHDEF \
--input_file='retrained_graph.pb' \
--output_format=TFLITE \
--output_file='retrained_graph.tflite' \
--inference_type=FLOAT \
--inference_input_type=FLOAT \
--output_arrays=final_result \
--input_arrays=batch_size,phase_train \
--input_shapes=1,160,160,3:False \
--mean_values=128 \
--std_values=128
2018-09-06 17:16:14.249938: F tensorflow/contrib/lite/toco/model_cmdline_flags.cc:263] Check failed: mean_values.size() == model_flags->input_arrays_size()
(2)pb信息

xxxx:~/tensorflow/pkg/tensorflow$ bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph='zzz/retrained_graph.pb'
Found 2 possible inputs: (name=batch_size, type=int32(3), shape=<unknown>) (name=phase_train, type=bool(10), shape=<unknown>) 
No variables spotted.
Found 1 possible outputs: (name=final_result, op=Softmax) 
Found 23514555 (23.51M) const parameters, 0 (0) variable parameters, and 675 control_edges
Op types used: 2019 Switch, 1104 Const, 1057 Identity, 449 Sub, 449 Merge, 247 Mul, 224 FusedBatchNorm, 132 Conv2D, 131 Relu, 24 Add, 23 ConcatV2, 21 BiasAdd, 3 MaxPool, 3 Shape, 3 Reshape, 2 MatMul, 2 Placeholder, 1 PlaceholderWithDefault, 1 AvgPool, 1 StridedSlice, 1 Softmax, 1 RealDiv, 1 RandomUniform, 1 QueueDequeueUpToV2, 1 FIFOQueueV2, 1 Pack, 1 Floor
To use with tensorflow/tools/benchmark:benchmark_model try these arguments:
bazel run tensorflow/tools/benchmark:benchmark_model -- --graph=zzz/retrained_graph.pb --show_flops --input_layer=batch_size,phase_train --input_layer_type=int32,bool --input_layer_shape=: --output_layer=final_result
xxxx:~/tensorflow/pkg/tensorflow$bazel bin/tensorflow/tools/graph\u transforms/summary\u graph--in\u graph='zzz/rettrained\u graph.pb'
找到2个可能的输入:(名称=批次大小,类型=int32(3),形状=)(名称=阶段列车,类型=布尔(10),形状=)
没有发现变量。
找到1个可能的输出:(名称=最终结果,op=Softmax)
找到了23514555(23.51M)个常量参数、0(0)个变量参数和675个控件_边
使用的操作类型:2019开关、1104常量、1057标识、449子、449合并、247 Mul、224 FusedBatchNorm、132 Conv2D、131 Relu、24 Add、23 ConcatV2、21 BiasAdd、3 MaxPool、3 Shape、3重塑、2 MatMul、2占位符、1默认占位符、1 AvgPool、1 STRIPDSLICE、1 Softmax、1 RealDiv、1 RandomUniform、1 QUEUDEQUEUEPOV2、1 FIOFQUEUEv2、,一包一层
要使用tensorflow/tools/benchmark:benchmark\u模型,请尝试以下参数:
bazel run tensorflow/tools/benchmark:benchmark_model--graph=zzz/retranted_graph.pb--show_flops--input_layer=batch_size,phase_train--input_layer_type=int32,bool--input_layer_shape=:--output_layer=final_result

如果您的模型没有使用量化,您可以完全跳过
--平均值
--标准值
输入参数


只有在使用量化时才需要这些标志(
--推断类型=量化单位8
)。如果您确实使用量化并指定
平均值
标准值
,则需要对每个输入进行量化(在这种情况下,
批量大小
阶段序列
)。

这是我的问题,它不能通过False。下一步该怎么做?2018-09-10 16:19:51.880193:F tensorflow/contrib/lite/toco/model\u cmdline\u flags.cc:327]检查失败:absl::SimpleAtoi(dim\u str,&size)无法解析输入\u shape:False已經終止 (核心已傾印)
False
不是一个形状。phase\u train是什么类型的张量?我选择FaceNet模型来训练自己的模型。(1)自己的模型信息:批处理大小==>占位符批处理大小===>占位符相处理列==>占位符相处理列==>占位符批处理/fifo队列==>FIFOQueueV2批处理连接==>队列输出==>标识(2)培训脚本的一部分:images\u placeholder=tf.get\u default\u graph().get\u tensor\u by\u name(“输入:0”)embedings=tf.get\u default\u graph().get\u tensor\u by\u name(“嵌入:0”)phase\u train\u placeholder=tf.get\u default\u graph().get\u tensor\u name(“阶段培训:0”)embedding\u size=embeddings.get\u shape\u dict={images\u placeholder:resized\u input\u values,phase\u train\u placeholder:False}瓶颈\u values=sess.run(嵌入,feed\u dict=feed\u dict)