TensorFlow freeze_graph: argumento posicional requerido 'unused_args'

TensorFlow freeze_graph: argumento posicional requerido 'unused_args'

Uso TensorFlow 1.7 con Python 3.6.5 en una Mac con High Sierra.

He entrenado mi primer modelo MNIST, así que básicamente tengo

  • un archivo graph.pbtxt con la estructura del gráfico CNN
  • algunos archivos model.ckpt-21000 (.meta, .index .data)

Intenté congelar el gráfico usando la línea de comando freeze_graph en mi bash:

freeze_graph
--input_graph=/…/graph.pbtxt
--input_checkpoint=/…/model.ckpt-21000
--input_binary=false
--output_graph=/…/frozen_mnist.pb
--output_node_names=softmax_tensor

Pero tengo este error:

Traceback (most recent call last):  
File “/usr/local/bin/freeze_graph”, line 11, in <module>  
sys.exit(main())  
TypeError: main() missing 1 required positional argument: ‘unused_args’

No estoy muy seguro de lo que me estoy perdiendo. Estoy bastante seguro de que estoy usando la sintaxis correcta.

Mostrar la mejor respuesta

He encontrado una solución alternativa para congelar mi gráfico. Lo estoy publicando aquí para que si alguien encuentra el mismo problema, pueda usarlo.

En lugar de

freeze_graph
--input_graph=/…/graph.pbtxt
--input_checkpoint=/…/model.ckpt-21000
--input_binary=false
--output_graph=/…/frozen_mnist.pb
--output_node_names=softmax_tensor

Usar

python3 -m tensorflow.python.tools.freeze_graph
--input_graph=/…/graph.pbtxt
--input_checkpoint=/…/model.ckpt-21000
--input_binary=false
--output_graph=/…/frozen_mnist.pb
--output_node_names=softmax_tensor

Entonces, básicamente, en lugar del comando freeze_graph, solo usé python3 -m tensorflow.python.tools.freeze_graph.

Aún así, me gustaría entender por qué la línea de comandos no me funcionó :(