Неожиданное исключение произошло при извлечении атрибутов Open Vino - PullRequest
0 голосов
/ 22 января 2020

Я пытался преобразовать модель Caffe, используя скрипт mo_caffe.py. Я всегда получаю ошибки, как показано ниже, но в случайных узлах (у всех есть общая операция "BatchNorm"). Обучил модель, используя Nvidia-Digits (https://github.com/NVIDIA/DIGITS)

Model Optimizer arguments:
Common parameters:
        - Path to the Input Model:      /home/deploy.caffemodel
        - Path for generated IR:        /dldt/model-optimizer/.
        - IR output name:       deploy
        - Log level:    INFO
        - Batch:        Not specified, inherited from the model
        - Input layers:         Not specified, inherited from the model
        - Output layers:        Not specified, inherited from the model
        - Input shapes:         Not specified, inherited from the model
        - Mean values:  Not specified
        - Scale values:         Not specified
        - Scale factor:         Not specified
        - Precision of IR:      FP32
        - Enable fusing:        True
        - Enable grouped convolutions fusing:   True
        - Move mean values to preprocess section:       False
        - Reverse input channels:       False
Caffe specific parameters:
        - Path to Python Caffe* parser generated from caffe.proto:      mo/front/caffe/proto
        - Enable resnet optimization:   True
        - Path to the Input prototxt:   /home/deploy.prototxt
        - Path to CustomLayersMapping.xml:      Default
        - Path to a mean file:  Not specified
        - Offsets for a mean file:      Not specified
Model Optimizer version:        unknown version
[ INFO ]  Importing extensions from: /dldt/model-optimizer/mo
[ INFO ]  New subclass: <class 'mo.ops.crop.Crop'>
[ INFO ]  Registered a new subclass with key: Crop
[ INFO ]  New subclass: <class 'mo.ops.deformable_convolution.DeformableConvolution'>
[ INFO ]  Registered a new subclass with key: DeformableConvolution
[ INFO ]  New subclass: <class 'mo.ops.concat.Concat'>
[ INFO ]  Registered a new subclass with key: Concat
[ INFO ]  New subclass: <class 'mo.ops.split.Split'>
...
Some log info. I don't think anything interesting here.
...
[ WARNING ]  Skipped <class 'extensions.front.override_batch.OverrideBatch'> registration because it was already registered or it was disabled.
[ WARNING ]  Skipped <class 'extensions.front.TopKNormalize.TopKNormalize'> registration because it was already registered or it was disabled.
[ WARNING ]  Skipped <class 'extensions.front.reshape_dim_normalizer.ReshapeDimNormalizer'> registration because it was already registered or it was
disabled.
[ WARNING ]  Skipped <class 'extensions.front.ArgMaxSqueeze.ArgMaxSqueeze'> registration because it was already registered or it was disabled.
[ WARNING ]  Skipped <class 'extensions.front.standalone_const_eraser.StandaloneConstEraser'> registration because it was already registered or it wa
s disabled.
[ WARNING ]  Skipped <class 'extensions.front.TransposeOrderNormalizer.TransposeOrderNormalizer'> registration because it was already registered or i
t was disabled.
[ WARNING ]  Skipped <class 'mo.front.common.replacement.FrontReplacementOp'> registration because it was already registered or it was disabled.
[ WARNING ]  Skipped <class 'extensions.front.restore_ports.RestorePorts'> registration because it was already registered or it was disabled.
[ WARNING ]  Skipped <class 'extensions.front.softmax.SoftmaxFromKeras'> registration because it was already registered or it was disabled.
[ WARNING ]  Skipped <class 'extensions.front.reduce_axis_normalizer.ReduceAxisNormalizer'> registration because it was already registered or it was
disabled.
[ WARNING ]  Skipped <class 'extensions.front.freeze_placeholder_value.FreezePlaceholderValue'> registration because it was already registered or it
was disabled.
[ WARNING ]  Skipped <class 'extensions.front.no_op_eraser.NoOpEraser'> registration because it was already registered or it was disabled.
[ WARNING ]  Node attributes: {'_in_ports': {}, 'model_pb': name: "conv2_3_sep_bn_left"
type: "BatchNorm"
bottom: "conv2_3_sep_left"
top: "conv2_3_sep_left"
param {
  lr_mult: 0.0
  decay_mult: 0.0
}
param {
  lr_mult: 0.0
  decay_mult: 0.0
}
param {
  lr_mult: 0.0
  decay_mult: 0.0
}
blobs {                                                                                                                                      [0/1963]
  shape {
    dim: 32
  }
}
blobs {
  shape {
    dim: 32
  }
}
blobs {
  shape {
    dim: 1
  }
}
phase: TRAIN
, 'kind': 'op', '_out_ports': {}, 'pb': name: "conv2_3_sep_bn_left"
type: "BatchNorm"
bottom: "conv2_3_sep_left"
top: "conv2_3_sep_left"
param {
  lr_mult: 0.0
  decay_mult: 0.0
}
param {
  lr_mult: 0.0
  decay_mult: 0.0
}
param {
  lr_mult: 0.0
  decay_mult: 0.0
}
, 'type': 'Parameter'}
[ ERROR ]  Unexpected exception happened during extracting attributes for node relu1.
Original exception message: list index (0) out of range

Это сообщение об ошибке, которое я получаю. Я также создал выпуск GitHub

Здесь - это модель, которую я хочу преобразовать из Caffe в OpenVino

1 Ответ

1 голос
/ 27 января 2020

Проблема заключалась в том, что Nvidia-Digits использует настроенную раздвоенную версию Caffe . Вот почему веса моделей не были правильно прочитаны OpenVino .

Мне пришлось использовать этот сценарий для преобразования модели перед преобразованием ее в OpenVino.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...