Обновите обученные модели обнаружения объектов, чтобы они соответствовали обновлениям TF

#python #tensorflow #object-detection-api

#python #tensorflow #object-detection-api

Вопрос:

Я перехожу на новую версию TF по соображениям стабильности (я использовал сборку nightly docker на Ubuntu 18.04 до того, как mainline переключилась на CUDA 10). Когда я пытаюсь запустить свои модели в новой версии, я получаю следующую ошибку, которая, как я предполагаю, означает, что существует несовместимость с моделями, обученными в более старой версии.
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/importer.py", line 426, in import_graph_def
graph._c_graph, serialized, options) # pylint: disable=protected-access
tensorflow.python.framework.errors_impl.InvalidArgumentError: NodeDef mentions attr 'explicit_paddings' not in Op<name=Conv2D; signature=input:T, filter:T -> output:T; attr=T:type,allowed=[DT_HALF, DT_BFLOAT16, DT_FLOAT, DT_DOUBLE]; attr=strides:list(int); attr=use_cudnn_on_gpu:bool,default=true; attr=padding:string,allowed=["SAME", "VALID"]; attr=data_format:string,default="NHWC",allowed=["NHWC", "NCHW"]; attr=dilations:list(int),default=[1, 1, 1, 1]>; NodeDef: {{node FirstStageFeatureExtractor/resnet_v1_101/resnet_v1_101/conv1/Conv2D}}. (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).

Что мне нужно сделать, чтобы обновить ранее обученные модели для работы с новой версией TF или мне нужно продолжать запускать эту версию до следующего сеанса обучения?

Ответ №1:

После некоторого просмотра график необходимо обновить. Поскольку у меня все еще не было контрольных точек для обучения, мне удалось обновить график путем экспорта из ранее замороженного графика в качестве контрольной точки. python3 export_inference_graph.py --input_type image_tensor --pipeline_config_path FROZENGRAPHDIRECTORY/pipeline.config --trained_checkpoint_prefix FROZENGRAPHDIRECTORY/model.ckpt --output_directory FROZENGRAPHDIRECTORY_tfNEWTFVERSION