Проблема преобразования модели Caffe в dlc с использованием SNPE - PullRequest
0 голосов
/ 30 ноября 2018

Я столкнулся с проблемой при преобразовании моей модели кафе в dlc с использованием SNPE.

В частности, в слое "Масштаб".

Первые два слоя выглядят следующим образом:

name: "First"
  input: "data"
  input_shape {
  dim: 1
  dim: 3
  dim: xxx
  dim: xxx
} 

layer {
  name: "data/Scale"
  type: "Scale"
  bottom: "data"
  top: "data/Scale"
  scale_param {
    filler: {
      value: 0.0078125   
    }
    bias_term: true
    bias_filler: {
      value: -1
    }
  }
  param {
    lr_mult: 0
    decay_mult: 1
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
}

layer {
  name: "Conv2d_0/convolution"
  type: "Convolution"
  convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 2
  }
  bottom: 'data/Scale'
  top: "Conv2d_0/convolution"
}

Я получаю следующую ошибку:

('Encountered Error:', 'list index out of range')

Stack Trace:
Traceback (most recent call last):

  File "/home/nithin.ga/SNPE_19/snpe-1.19.2/bin/x86_64-linux-clang/snpe-caffe-to-dlc", line 115, in <module>
    args.enable_strict_validation)

  File "/home/nithin.ga/SNPE_19/snpe-1.19.2/lib/python/snpe/snpe_caffe_to_dlc.py", line 1145, in convert
    self.convert_caffe_new(self.spec)

  File "/home/nithin.ga/SNPE_19/snpe-1.19.2/lib/python/snpe/snpe_caffe_to_dlc.py", line 1327, in convert_caffe_new
    layer_seq = self._blob_connectivity_map.check_s_folding(layer)

  File "/home/nithin.ga/SNPE_19/snpe-1.19.2/lib/python/snpe/snpe_caffe_to_dlc.py", line 459, in check_s_folding

output_layer = self._blobs[prev_layer_output_blob]['output_of_layers'][0]
IndexError: list index out of range

1 Ответ

0 голосов
/ 18 июля 2019

Вот документация для ограничения слоя масштаба SNPE:

https://developer.qualcomm.com/docs/snpe/limitations.html

Нормализация партии (+ масштабирование)

  • Caffe: масштабирование (scale_layer) необязательно.Если он присутствует, он расширяет функциональность нормализации партии (batch_norm_layer).Если нет, batch_norm_layer все равно будет конвертирован согласно спецификации Caffe.scale_layer используется где-либо еще в сети, но сразу после batch_norm_layer не поддерживается.

Существует поддержка масштабирования, но только если она является частью уровня данных:

https://developer.qualcomm.com/docs/snpe/network_layers.html

Масштаб (Изображение)

Масштабирование входного изображения, поддерживает соотношение сторон.Эта функция в первую очередь предназначена для изображений, но технически любые 2D входные данные могут быть обработаны, если это имеет смысл.Параметры масштабирования предоставляются в качестве опции для инструмента конвертации моделей.

Сам по себе такой слой Caffe отсутствует.Эта функциональность является технической частью поставщика данных Caffe.

...