Кафе зависает после печати данных -> этикетка
Я пытаюсь обучить LeNet на моих собственных данных (37 на 37 полутоновых изображений 1024 категорий).
Я создал файлы lmdb и изменил размер выходного слоя на 1024. Когда я запустил caffe train
с моим файлом решателя программа зависла после печати
...
layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "score"
bottom: "label"
top: "loss"
}
I0713 17:11:13.334890 9595 layer_factory.hpp:77] Creating layer data
I0713 17:11:13.334939 9595 net.cpp:91] Creating Layer data
I0713 17:11:13.334950 9595 net.cpp:399] data -> data
I0713 17:11:13.334961 9595 net.cpp:399] data -> label
В чем может быть проблема?
Я новичок с кофе, любая помощь будет оценена.
solver.prototxt
net: "lenet_auto_train.prototxt"
test_iter: 100
test_interval: 500
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
lr_policy: "inv"
gamma: 0.0001
power: 0.75
display: 100
max_iter: 10000
snapshot: 5000
snapshot_prefix: "lenet"
lenet.prototxt
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
transform_param {
scale: 0.00392156862745
}
data_param {
source: "dir/dat/1024_37*37_gray_lmdb"
batch_size: 64
backend: LMDB
}
}
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
convolution_param {
num_output: 20
kernel_size: 5
weight_filler {
type: "xavier"
}
}
}
layer {
name: "pool1"
type: "Pooling"
bottom: "conv1"
top: "pool1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv2"
type: "Convolution"
bottom: "pool1"
top: "conv2"
convolution_param {
num_output: 50
kernel_size: 5
weight_filler {
type: "xavier"
}
}
}
layer {
name: "pool2"
type: "Pooling"
bottom: "conv2"
top: "pool2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "fc1"
type: "InnerProduct"
bottom: "pool2"
top: "fc1"
inner_product_param {
num_output: 500
weight_filler {
type: "xavier"
}
}
}
layer {
name: "relu1"
type: "ReLU"
bottom: "fc1"
top: "fc1"
}
layer {
name: "score"
type: "InnerProduct"
bottom: "fc1"
top: "score"
inner_product_param {
num_output: 1024
weight_filler {
type: "xavier"
}
}
}
layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "score"
bottom: "label"
top: "loss"
}
3 ответа
Проблема в том, что я поставил варианты test_iter: 100
а также test_interval: 500
в файле решателя, но я не указал тестовую сеть или уровень тестовых данных в сетевом файле.
В моем случае это произошло, когда одна и та же LMDB используется как для обучения, так и для испытания.
Кажется, что caffe пытается прочитать lmdb, а затем сталкивается с проблемой.
Я думаю, что ваше имя БД "dir/dat/1024_37*37_gray_lmdb"
вызывает проблему: имея "*"
символ в имени файла не является хорошей практикой.
Измените имя БД на что-то вроде "dir/dat/1024_37x37_gray_lmdb"
и попробуйте снова (не забудьте также изменить прототип)