Отвечая на мой собственный вопрос здесь. Утилита freeze_graph, которая поставляется с tenorflow, полезна для извлечения graphdef из формата tf SavedModel.
Чтобы найти имя узла ввода, обязательно сохраните tf SavedModel в формате pbtxt. Откройте его и найдите первый узел вашего вычислительного графа, например, при использовании tf resnet первые узлы будут называться resnet_model / *. Найдите узел, который кормит этот узел, и у вас будет имя входного узла, которое нужно указать инструментам MMdnn. Я ожидал, что это будет tf.Placeholder, который Оценщик добавляет для входных данных. Этот узел был просто назван Placeholder
, поэтому я указал его как входной.
Сначала извлеките граф вычислений.
freeze_graph --input_saved_model_dir <path/to/saved_model_dir> --output_node_names softmax --output_graph ./graph_def.pb
Затем используйте MMdnn, чтобы преобразовать его в caffe.
mmconvert -sf tensorflow -iw ./graph_def.pb --inNodeName Placeholder --inputShape 224,224,3 --dstNodeName softmax -df caffe -om tf_resnet