Entorno: ubuntu 16.04
tensorflow1.12.0
El código fuente de tensorflow 1.10 y 1.12 tienen diferentes scripts cuantificados. Usé 1.10 antes, y todavía tengo el método de uso, pero ahora quiero cuantificar 1.12, así que puedo lanzar a una chica, y luego tengo otra ola de estas cosas hoy !
Déjame hablar primero de tensorflow1.10:
官网:
https://github.com/tensorflow/tensorflow/tags
Ingrese a la carpeta, primero compile bazel-bin
bazel build tensorflow/tools/quantization:quantize_graph
Cuantificar pb
bazel-bin/tensorflow/tools/quantization/quantize_graph --input=*.pb --output_node_names="*" --output=*.pb --mode=eightbit --logtostderr
--input : 要量化的模型pb文件(完整路径)
--output_node_names : 输出的tensor节点名字
--output : 输出的.pb文件(完整路径)
¡En este punto, se completa un proceso completo!
No hay quantize_graph en tensorflow1.12 tensorflow / tools / quantization /, se ha desaprobado y la herramienta transform_graph debe compilarse.
bazel build tensorflow/tools/graph_transforms:transform_graph
Cuando aparece una interfaz de este tipo, ¡la compilación se realiza correctamente!
Modelo pb cuantitativo
bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph=*.pb \
--out_graph=*.pb \
--outputs="*" \
--transforms='quantize_weights'
注意:
--in_graph : 要量化的模型pb文件(完整路径)
--out_graph : 输出的.pb文件(完整路径)
--outputs : 输出的tensor节点名字
Veo que algunas personas en Internet dicen que puede usar resume_graph para analizar la diferencia entre el modelo antes y después de la cuantificación, ponderación, reducción del modelo, agregando algunos nodos para cuantificación y descuantificación, así que compilé resume_graph nuevamente
bazel build tensorflow/tools/graph_transforms:summarize_graph
Cuando aparece una interfaz de este tipo, ¡la compilación se realiza correctamente!
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph \
--in_graph=*.pb \
--print_structure=true
注意:
--in_graph : 要量化的模型pb文件(完整路径)