我有一个Caffe CNN模型,我正在尝试使用import { PopoverModule } from "../../../../node_modules/ngx-popover";
命令将其导入MATLAB,该命令将prototxt和caffemodel文件作为输入参数。
但是,我收到了这个错误:
importCaffeNetwork
似乎错误与MATLAB和CAFFE中汇集层的输出大小计算差异有关,前者使用The pooling layer 'pool1' is not compatible with MATLAB.
Caffe computes the output size as [16 16 32] but MATLAB computes it as [15 15 32]
而后者使用ceil
函数。
这是问题的真正根源吗? 我该怎么做才能解决这个问题?
答案 0 :(得分:1)
这是因为在caffe中,卷积层和池化层的输出大小计算略有不同。假设输入dim为h
,填充为p
,内核大小为k
,步幅为s
,对于卷积层,输出大小为
floor((h+2*p-k)/s)+1
,
但是对于池化图层,输出大小为ceil((h+2*p-k)/s)+1
。
因此即使参数和输入大小相同,输出大小也会不同。
调整填充和步幅以及内核大小等参数,以确保输出相同。