python — [Caffe]: проверка не пройдена: несоответствие форм ShapeEquals (proto) (изменение формы не установлено)

У меня есть эта ошибка, и я попытался взглянуть в Интернете, но я ничего не понял.

Я успешно тренировал свою сеть с Каффе с точностью около 82%.

Теперь я пытаюсь попробовать это с изображением через этот код:

python python/classify.py --model_def examples/imagenet/imagenet_deploy.prototxt --pretrained_model caffe_mycaffe_train_iter_10000.caffemodel --images_dim 64,64 data/mycaffe/testingset/cat1/113.png foo --mean_file data/mycaffe/mycaffe_train_mean.binaryproto

да, мои изображения 64х64,

это последние строки, которые я получаю:

I0610 15: 33: 44.868100 28657 net.cpp: 194] conv3 не требует обратного вычисления.
I0610 15: 33: 44.868110 28657 net.cpp: 194] norm2 не требует обратного вычисления.
I0610 15: 33: 44.868120 28657 net.cpp: 194] pool2 не требует обратного вычисления.
I0610 15: 33: 44.868130 28657 net.cpp: 194] relu2 не требует обратного вычисления.
I0610 15: 33: 44.868142 28657 net.cpp: 194] conv2 не требует обратного вычисления.
I0610 15: 33: 44.868152 28657 net.cpp: 194] norm1 не требует обратного вычисления.
I0610 15: 33: 44.868162 28657 net.cpp: 194] pool1 не требует обратного вычисления.
I0610 15: 33: 44.868173 28657 net.cpp: 194] relu1 не требует обратного вычисления.
I0610 15: 33: 44.868182 28657 net.cpp: 194] conv1 не требует обратного вычисления.
I0610 15: 33: 44.868192 28657 net.cpp: 235] Эта сеть выдает вывод fc8_pascal
I0610 15: 33: 44.868214 28657 net.cpp: 482] Сбор данных о скорости обучения и снижении веса.
I0610 15: 33: 44.868238 28657 net.cpp: 247] Инициализация сети выполнена.
I0610 15: 33: 44.868249 28657 net.cpp: 248] Память, необходимая для данных: 3136120
F0610 15: 33: 45.025965 28657 blob.cpp: 458] Проверка не пройдена: несоответствие формы ShapeEquals (proto) (изменение формы не установлено)
* Проверьте трассировку стека ошибок: *
Прервано (ядро сброшено)

Я пытался не устанавливать —mean_file и другие вещи, но мои снимки окончены.

Это мой imagenet_deploy.prototxt, который я изменил в некоторых параметрах для отладки, но ничего не сработало.

name: "MyCaffe"input: "data"input_dim: 10
input_dim: 3
input_dim: 64
input_dim: 64
layer {
name: "conv1"type: "Convolution"bottom: "data"top: "conv1"convolution_param {
num_output: 64
kernel_size: 11
stride: 4
}
}
layer {
name: "relu1"type: "ReLU"bottom: "conv1"top: "conv1"}
layer {
name: "pool1"type: "Pooling"bottom: "conv1"top: "pool1"pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "norm1"type: "LRN"bottom: "pool1"top: "norm1"lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "conv2"type: "Convolution"bottom: "norm1"top: "conv2"convolution_param {
num_output: 64
pad: 2
kernel_size: 5
group: 2
}
}
layer {
name: "relu2"type: "ReLU"bottom: "conv2"top: "conv2"}
layer {
name: "pool2"type: "Pooling"bottom: "conv2"top: "pool2"pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "norm2"type: "LRN"bottom: "pool2"top: "norm2"lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "conv3"type: "Convolution"bottom: "norm2"top: "conv3"convolution_param {
num_output: 384
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3"type: "ReLU"bottom: "conv3"top: "conv3"}
layer {
name: "conv4"type: "Convolution"bottom: "conv3"top: "conv4"convolution_param {
num_output: 384
pad: 1
kernel_size: 3
group: 2
}
}
layer {
name: "relu4"type: "ReLU"bottom: "conv4"top: "conv4"}
layer {
name: "conv5"type: "Convolution"bottom: "conv4"top: "conv5"convolution_param {
num_output: 64
pad: 1
kernel_size: 3
group: 2
}
}
layer {
name: "relu5"type: "ReLU"bottom: "conv5"top: "conv5"}
layer {
name: "pool5"type: "Pooling"bottom: "conv5"top: "pool5"pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "fc6"type: "InnerProduct"bottom: "pool5"top: "fc6"inner_product_param {
num_output: 4096
}
}
layer {
name: "relu6"type: "ReLU"bottom: "fc6"top: "fc6"}
layer {
name: "drop6"type: "Dropout"bottom: "fc6"top: "fc6"dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "fc7"type: "InnerProduct"bottom: "fc6"top: "fc7"inner_product_param {
num_output: 4096
}
}
layer {
name: "relu7"type: "ReLU"bottom: "fc7"top: "fc7"}
layer {
name: "drop7"type: "Dropout"bottom: "fc7"top: "fc7"dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "fc8_pascal"type: "InnerProduct"bottom: "fc7"top: "fc8_pascal"inner_product_param {
num_output: 3
}
}

Кто-нибудь может дать мне подсказку?
Большое спасибо.


То же самое происходит с C ++ и бункер классификации они предоставляют:

F0610 18: 06: 14.975601 7906 blob.cpp: 455] Проверка не удалась: несоответствие формы ShapeEquals (proto) (изменение формы не установлено)
* Проверьте трассировку стека ошибок: *
@ 0x7f0e3c50761c google :: LogMessage :: Fail ()
@ 0x7f0e3c507568 google :: LogMessage :: SendToLog ()
@ 0x7f0e3c506f6a google :: LogMessage :: Flush ()
@ 0x7f0e3c509f01 google :: LogMessageFatal :: ~ LogMessageFatal ()
@ 0x7f0e3c964a80 caffe :: Blob<> :: FromProto ()
@ 0x7f0e3c89576e caffe :: Net<> :: CopyTrainedLayersFrom ()
@ 0x7f0e3c8a10d2 caffe :: Net<> :: CopyTrainedLayersFrom ()
@ 0x406c32 Классификатор :: Классификатор ()
@ 0x403d2b main
@ 0x7f0e3b124ec5 (неизвестно)
@ 0x4041ce (неизвестно)
Прервано (ядро сброшено)

0

Решение

Позвольте мне подтвердить правильность основных шагов.

input_dim: 10
input_dim: 3
input_dim: 64
input_dim: 64

Вы пытались изменить первый параметр на 1, так как вы передаете только одно изображение.

Вышеупомянутая ошибка возникает, когда размеры верхнего или нижнего пузырьков являются неправильными. И нет ничего, что могло бы пойти не так, кроме входных двоичных объектов.

Изменить 2:

ShapeEquals(proto) shape mismatch (reshape not set) появляется сообщение об ошибке, когда для параметра «reshape» задано значение false для fromproto вызов функции.

Я сделал быстрый поиск вызова функции fromproto в библиотеке, как показано Вот. Кроме функции «CopyTrainedLayersFrom», никакая другая функция не устанавливает вышеупомянутый параметр как false,

Это на самом деле сбивает с толку. Два метода, которые я бы предложил:

  1. Проверьте, обновлен ли исходный код caffe из репозитория.
  2. Попробуйте запустить тестовое задание часть caffe.bin исполняемый файл находится в / build / tools /.
2

Другие решения

У меня просто была такая же ошибка. В моем случае мои выходные параметры последнего слоя были неправильными: переключая наборы данных, я изменил количество классов в train.prototxt и не смог сделать это в test.prototxt (или deploy.prototxt). Исправление этой ошибки решило проблему для меня.

4

В моем случае размер ядра во втором сверточном слое в моем файле решателя отличался от размера в файле поезда. Изменение размера в файле решателя решило проблему.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector