使用SNPE将Caffe模型转换为dlc时出现问题

时间:2018-11-30 11:43:37

标签: deep-learning caffe snpe

在使用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"
}

我收到以下错误:

(“遇到错误:”,“列表索引超出范围”)

堆栈跟踪: 追溯(最近一次通话):

文件“ /home/nithin.ga/SNPE_19/snpe-1.19.2/bin/x86_64-linux-clang/snpe-caffe-to-dlc”,第115行,在     args.enable_strict_validation)

文件“ /home/nithin.ga/SNPE_19/snpe-1.19.2/lib/python/snpe/snpe_caffe_to_dlc.py”,行1145,在转换中     self.convert_caffe_new(self.spec)

convert_caffe_new中的文件“ /home/nithin.ga/SNPE_19/snpe-1.19.2/lib/python/snpe/snpe_caffe_to_dlc.py”,行1327     layer_seq = self._blob_connectivity_map.check_s_folding(layer)

在check_s_folding中的文件“ /home/nithin.ga/SNPE_19/snpe-1.19.2/lib/python/snpe/snpe_caffe_to_dlc.py”第459行

output_layer = self._blobs [prev_layer_output_blob] ['output_of_layers'] [0] IndexError:列表索引超出范围

谢谢。

1 个答案:

答案 0 :(得分:0)

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

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