Я реализовал DeformableConvolution, который является новым типом слоя свертки в caffe. Он наследуется от класса BaseConvolution, как и ConvolutionLayer, и имеет тот же параметр, что и свертка.
Теперь я могу использовать ./build/tools/caffe XXX
обучить и протестировать сеть содержит этот новый слой, как и ожидалось. Но когда я использую pycaffe для визуализации функций. Дело дошло до этой ошибки.
команда pycaffe:
caffe.set_mode_gpu()
net = caffe.Net(‘mnist/mnist.prototxt',
‘models/mnist_iter_5000.caffemodel',
caffe.TEST)
ошибка:
layer_factory.hpp:81] Check failed: registry.count(type) == 1 (0 vs. 1)
Unknown layer type: DeformableConvolution
Я искал его и обнаружил, что в основном это было вызвано отсутствием кодов в caffe.proto
а также layer_factory.cpp
, Поскольку этот слой имеет те же параметры, что и обычный слой свертки, я понятия не имею, как мне поступить с этими двумя файлами. И это может быть обучено, как ожидается, ./build/tools/caffe
Интересно, это вызвано только тем, что связано с пикаффом?
демонстрация слоя:
layer {
name: "conv11"type: "DeformableConvolution"bottom: "data"bottom: "conv11_offset"top: "conv11"param {
lr_mult: 0
}
convolution_param {
num_output: 32
kernel_size: 3
stride: 1
dilation: 1
pad: 1
}
}
Задача ещё не решена.
Других решений пока нет …