Я могу удалить все узлы Identity из моей модели .pb с помощью команд:
bazel build tensorflow/tools/graph_transforms:transform_graph
bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph=../m.pb --out_graph=../new.pb --inputs='batch_size,phase_train' --outputs='label_batch,embeddings' --transforms='strip_unused_nodes(type=float, shape="1,299,299,3") remove_nodes(op=Identity) fold_old_batch_norms fold_constants(ignore_errors=true)'
Однако я не могу сделать то же самое, если изменить Identity на Switch. Это означает, что приведенная ниже команда не удаляет узлы.
bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph=../m.pb --out_graph=../new.pb --inputs='batch_size,phase_train' --outputs='label_batch,embeddings' --transforms='strip_unused_nodes(type=float, shape="1,299,299,3") remove_nodes(op=Switch) fold_old_batch_norms fold_constants(ignore_errors=true)'
Вот как я проверяю узлы модели:
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph=../new.pb
Результат, как показано ниже:
Найдено 2 возможных входа: (name = phase_train, type = bool (10), shape =) (name = batch_size, type = int32 (3), shape =) Переменных не обнаружено. Найдено 2 возможных выхода: (name = label_batch, op = Identity) (name = embeddings, op = Mul) Найдено 23512506 (23.51M) постоянных параметров, 0 (0) переменных параметров и 676 control_edges используемых типов операций: 2019 Switch, 1105 Const, 566 Identity, 449 Merge, 448 Sub, 249 Mul, 224 FusedBatchNormV3, 132 Conv2D, 131 Relu, 23 ConcatV2, 21 BiasAdd, 21 AddV2, 3 Shape, 3 MaxPool, 3 Reshape, 2 Placeholder, 1 Maximum, 1 Pack, 1 MatMul, 1 QueueDequeueUpToV2, 1 RandomUniform, 1 GreaterEqual, 1 FIFOQueueV2, 1 Rsqrt, 1 AvgPool, 1 Square, 1 StridedSlice, 1 Cast, 1 Sum, 1 Добавить Чтобы использовать с tenorflow / tools / benchmark: benchmark_model, попробуйте следующие аргументы: b запустите тензор потока / tools / benchmark: benchmark_model - --graph = .. / new.pb --show_flops --input_layer = phase_train, batch_size --input_layer_type = bool, int32 --input_layer_shape =: --output_layer = label_batch, вложения
Мой вопрос, как я могу удалить узлы коммутатора?