фреймворк caffe не работает при тестировании - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь использовать тест Кафе, чтобы проверить точность Каффеннета.Довольно просто, не правда ли?

Действительно НЕТ.Это не работает вообще.

Ниже я опишу шаги, которые я выполняю (На мой взгляд, все в порядке):

  1. Я скачал набор обучения и проверки imagenet.
  2. Я использовал приложение "create_imagenet.sh" для создания базы данных LMDB.Здесь я изображаю свой «create_imagenet.sh» (я изменил некоторые вещи, так как мне нужна только база данных проверки):

        RESIZE=true
        if $RESIZE; then
          RESIZE_HEIGHT=256
          RESIZE_WIDTH=256
        else
          RESIZE_HEIGHT=0
          RESIZE_WIDTH=0
        fi
    
    if [ ! -d "$VAL_DATA_ROOT" ]; then
      echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
      echo "Set the VAL_DATA_ROOT variable in create_imagenet.sh to the path" \
           "where the ImageNet validation data is stored."
      exit 1
    fi
    
    echo "Creating train lmdb..."
    
    GLOG_logtostderr=1 $TOOLS/convert_imageset \
        -resize_height=$RESIZE_HEIGHT \
        -resize_width=$RESIZE_WIDTH \
        --shuffle \
        $VAL_DATA_ROOT \
        $DATA/val.txt \
        $EXAMPLE/ilsvrc12_val_leveldb
    
    echo "Done."
    

в $ VAL_DATA_ROOT Я храню путь к проверочным изображениям,в $ DATA путь к файлу tu val.txt и, наконец, пример пути, когда я хочу сохранить свою базу данных.Я МОГУ УБЕДИТЬСЯ, что пути абсолютно верны.

Получив базу данных, я скачал файл весов bvlc_reference_caffenet.caffemodel с официального сайта, и все в порядке.

Я изменил train_val.prototxt, чтобы связать базу данных.Далее я изобразил первые строки файла.Остальное не меняется вообще (по сравнению с оригиналом).

# mean pixel / channel-wise mean instead of mean image
#  transform_param {
#    crop_size: 227
#    mean_value: 104
#    mean_value: 117
#    mean_value: 123
#    mirror: true
#  }
  data_param {
    source: "/home/paco/Caffe_Original/caffe/examples/imagenet/ilsvrc12_train_lmdb"
    batch_size: 256
    backend: LMDB
  }
}
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TEST
  }
#  transform_param {
#    mirror: false
#    crop_size: 227
#    mean_file: "/home/paco/Caffe/caffe/data/ilsvrc12/imagenet_mean.binaryproto"
#  }
# mean pixel / channel-wise mean instead of mean image
  transform_param {
    crop_size: 227
    mean_value: 104
    mean_value: 117
    mean_value: 123
    mirror: false
  }
  data_param {
    source: "/home/paco/imagenet_noformat/ilsvrc12_val_lmdb"
    batch_size: 50
    backend: LMDB
  }
}

Я просто запускаю инструмент caffe следующим образом:

caffe test -model = / home/paco/Caffe/caffe/models/bvlc_reference_caffenet/train_val.prototxt -weights = / home / paco / Caffe / caffe / models / bvlc_reference_caffenet / bvlc_reference_caffenet.caffemodel -iterations = 2000 1030 **1030**Вы все можете видеть, что все выглядит ОТЛИЧНО, и я не получаю никакой ошибки вообще !!

Однако, это не работает, так как я получаю это на своей оболочке !!:

**

I1016 16:43:32.526727 22178 net.cpp:255] Network initialization done.
I1016 16:43:32.675029 22178 upgrade_proto.cpp:46] Attempting to upgrade input file specified using deprecated transformation parameters: /home/paco/Caffe/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
I1016 16:43:32.675051 22178 upgrade_proto.cpp:49] Successfully upgraded file specified using deprecated data transformation parameters.
W1016 16:43:32.675071 22178 upgrade_proto.cpp:51] Note that future Caffe releases will only support transform_param messages for transformation fields.
I1016 16:43:32.675122 22178 upgrade_proto.cpp:55] Attempting to upgrade input file specified using deprecated V1LayerParameter: /home/paco/Caffe/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
I1016 16:43:32.882395 22178 upgrade_proto.cpp:63] Successfully upgraded file specified using deprecated V1LayerParameter
I1016 16:43:32.943102 22178 caffe.cpp:281] Running for 2000 iterations.
I1016 16:43:34.434036 22178 caffe.cpp:304] Batch 0, accuracy = 1
I1016 16:43:34.434161 22178 caffe.cpp:304] Batch 0, loss = -nan
I1016 16:43:35.862941 22178 caffe.cpp:304] Batch 1, accuracy = 1
I1016 16:43:35.862982 22178 caffe.cpp:304] Batch 1, loss = -nan
I1016 16:43:37.310729 22178 caffe.cpp:304] Batch 2, accuracy = 1
I1016 16:43:37.310768 22178 caffe.cpp:304] Batch 2, loss = -nan
I1016 16:43:38.719712 22178 caffe.cpp:304] Batch 3, accuracy = 1
I1016 16:43:38.719833 22178 caffe.cpp:304] Batch 3, loss = -nan
I1016 16:43:40.171242 22178 caffe.cpp:304] Batch 4, accuracy = 1
I1016 16:43:40.171273 22178 caffe.cpp:304] Batch 4, loss = -nan
I1016 16:43:41.674332 22178 caffe.cpp:304] Batch 5, accuracy = 1
I1016 16:43:41.674373 22178 caffe.cpp:304] Batch 5, loss = -nan
I1016 16:43:43.160789 22178 caffe.cpp:304] Batch 6, accuracy = 1
I1016 16:43:43.160826 22178 caffe.cpp:304] Batch 6, loss = -nan

**

Это еще хуже с alexnet и Squeezenet, где, следуя одним и тем же шагам, я ВСЕГДА получаю 0 точности (в действительности, иногда я получаю 0,001 или что-то в этом роде).

ЧТО ПРОИСХОДИТ?Может быть, мне нужно предварительно обработать изображения перед тем, как выгрузить их в базу данных?НИКТО МОЖЕТ ПОМОЧЬ МНЕ?Я ДЕЙСТВИТЕЛЬНО ОЦЕНИЛ ЕГО.

Большое спасибо за ваше внимание и помощь.

1 Ответ

0 голосов
/ 18 октября 2018

Проблема была в библиотеке MKL.Это не работало, но мне вообще не давали никакой информации.Я исправил проблему, заново скомпилировав caffe с помощью библиотеки OpenBlas.

Спасибо тебе.

...