Зависание в бесконечном цикле блокировки очереди при использовании LMDB в Windows cpp?

Я пытаюсь обучить и протестировать простую сеть на сегментацию. Я создал файл LMDB, используя Windows CPP.

Но во время обучения в Windows CPP он застрял в

 boost::shared_ptr<caffe::Solver<float> > solver(caffe::SolverRegistry<float>::CreateSolver(solver_param));

после отладки я обнаружил, что он застрял в бесконечном цикле блокировки очереди. поток выглядит следующим образом.

layers_ [layer_id] -> SetUp (bottom_vecs_ [layer_id],
top_vecs_ [layer_id]) -> DataLayerSetUp (внизу, вверху) —-> Datum&
datum = * (reader_.full (). peek ()) —-> Очередь блокировки

Он отображает эти журналы в исполняемом окне во время выполнения.

[layer_factory.hpp:77] Creating layer data;
[net.cpp:100] Creating Layer data;
[net.cpp:418] data -> data;

*********** mycaffe.cpp ***************

   Caffe::set_mode(Caffe::GPU);
shared_ptr<Net<float> > net_;
net_.reset(new Net<float>(model_file, caffe::Phase::TRAIN));

Caffe::set_mode(Caffe::GPU);
caffe::SolverParameter solver_param;
caffe::ReadSolverParamsFromTextFileOrDie("mysolver.prototxt", &solver_param);
boost::shared_ptr<caffe::Solver<float> > solver(caffe::SolverRegistry<float>::CreateSolver(solver_param));
solver->Solve();

***************** mymodel.prototxt ********************

layer {
name: "data"type: "Data"top: "data"
include {
phase: TRAIN
}

data_param {
source: "data_lmdb"batch_size: 4
backend: LMDB
}

}

layer {
name: "label"type: "Data"top: "label"
include {
phase: TRAIN
}data_param {
source: "label_lmdb"batch_size: 4
backend: LMDB
}

}
layer {
name: "conv1"type: "Convolution"bottom: "data"top: "conv1"param {
lr_mult: 1.0
}
param {
lr_mult: 0.10000000149
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "gaussian"std: 0.0010000000475
}
bias_filler {
type: "constant"value: 0.0
}
}
}
layer {
name: "relu1"type: "ReLU"bottom: "conv1"top: "conv1"}
layer {
name: "conv2"type: "Convolution"bottom: "conv1"top: "conv2"param {
lr_mult: 1.0
}
param {
lr_mult: 0.10000000149
}
convolution_param {
num_output: 1024
pad: 0
kernel_size: 16
stride: 16
weight_filler {
type: "gaussian"std: 0.0010000000475
}
bias_filler {
type: "constant"value: 0.0
}
}
}
layer {
name: "relu2"type: "ReLU"bottom: "conv2"top: "conv2"}
layer {
name: "upsample"type: "Deconvolution"bottom: "conv2"top: "upsample"param {
lr_mult: 1.0
}
convolution_param {
num_output: 1
pad: 0
kernel_size: 16
stride: 16
bias_filler {
type: "constant"value: 128.0
}
}
}
layer {
name: "lossL1"type: "SmoothL1Loss"bottom: "upsample"bottom: "label"top: "lossL1"loss_weight: 1.0
}

******************* mysolver.prototxt ************

test_initialization: false
base_lr: 0.01
display: 10
max_iter: 500000
lr_policy: "step"gamma: 0.1
momentum: 0.9
weight_decay: 0.0001
stepsize: 4069
snapshot: 10000
snapshot_prefix: "snapshot"solver_mode: GPU
net: "mymodel.prototxt"solver_type: SGD

Пожалуйста, помогите мне разобраться в ошибке. Спасибо.

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы [email protected]