0

我在使用 SNPE 将我的 caffe 模型转换为 dlc 时遇到问题。

特别是在“比例”层。

前两层如下

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
4

1 回答 1

0

以下是 SNPE 的 Scale layer 限制的文档:

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 数据提供程序的一部分。

于 2019-07-18T02:19:28.077 回答