Этот вопрос связан с Поменять входной набор данных TensorFlow конвейер с заполнителем после обучения
У меня есть график, который я хочу оптимизировать для вывода с помощью TensorRT. Чтобы получить график, исключая часть входного конвейера, которую я делаю:
python optimize_for_inference.py \
--input=frozen_model.pb \
--output=inference.pb \
--frozen_graph=True \
--input_names=IteratorGetNext
--output_names=name_of_the_output_tensor_you_want_to_use
«Это заменит узел IteratorGetNext заполнителем с плавающей запятой. Возможно, вы захотите выбрать другой узел, и в этом случае просто измените имя. Вы также можете изменить тип сгенерированного заполнителя с помощью параметра --placeholder_type_enum. В этом случае вы необходимо предоставить целочисленное значение, соответствующее требуемому типу данных из перечисления DataType». (ответьте на этот вопрос Поменяйте местами ввод набора данных TensorFlow конвейер с заполнителем после обучения )
Однако заполнитель float не имеет формы. При предоставлении графика TensorRT происходит сбой, потому что эта форма отсутствует. Можно ли придать форму этому заполнителю поплавка?
Чтобы быть более конкретным, ошибка, выдаваемая TensorRT,
tensorflow.python.framework.errors_impl.NotFoundError: нет атрибута с именем «форма» в NodeDef: [[Node: input_images = Placeholderdtype=DT_FLOAT]] для «input_images» (op: «Placeholder») с входными формами: .