Кафе зависает после печати данных -> этикетка

Я пытаюсь обучить 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" и попробуйте снова (не забудьте также изменить прототип)

Другие вопросы по тегам