Использование 'caffe time' для сравнительного тестирования alexnet - PullRequest
0 голосов
/ 04 марта 2019

Я новичок в кофе, и в настоящее время я пытаюсь использовать его с Alexnet.Когда я говорю «использовать», я имею в виду, что я не хочу обучать сеть, поэтому я получил '.caffemodel' для Alexnet, как упоминалось здесь .

Теперь я хочу использовать caffe'sфункция времени, чтобы посмотреть, сколько времени требуется для выполнения каждого слоя во время фазы ТЕСТ (я делаю для получения времени выполнения для каждого слоя во время вывода).

Согласно опциям кафе

usage: caffe <command> <args>

commands:
  train           train or finetune a model
  test            score a model
  ------------
  time            benchmark model execution time
  collect         collects layer data on specified device
  compare         collects layer data using inputs from other device

  Flags from tools/caffe.cpp:
      ---------------------
    -phase (Optional; network phase (TRAIN or TEST). Only used for 'time'.)
      type: string default: ""
    -sampling (Optional; Caffe test with sampling mode) type: bool
      default: false
     -------------------------

Я могу запустить следующую команду для тестирования Alexnet на этапе TEST:

build/tools/caffe time -model models/bvlc_alexnet/train_val.prototxt -iterations 1000 -engine MKLDNN -phase TEST

Но когда я это сделаю, я получу следующую ошибку:

I0304 17:37:26.183619 29987 net.cpp:409] label_data_1_split does not need backward computation.
I0304 17:37:26.183625 29987 net.cpp:409] data does not need backward computation.
I0304 17:37:26.183629 29987 net.cpp:451] This network produces output accuracy
I0304 17:37:26.183635 29987 net.cpp:451] This network produces output loss
I0304 17:37:26.183647 29987 net.cpp:491] Network initialization done.
I0304 17:37:26.183732 29987 caffe.cpp:556] Performing Forward
I0304 17:37:26.287747 29987 caffe.cpp:561] Initial loss: 6.92452
I0304 17:37:26.287784 29987 caffe.cpp:563] Performing Backward
F0304 17:37:26.385227 29987 mkldnn_pooling_layer.cpp:464] Check failed: poolingBwd_pd 
*** Check failure stack trace: ***
    @     0x7fe03e3980cd  google::LogMessage::Fail()
    @     0x7fe03e399f33  google::LogMessage::SendToLog()
    @     0x7fe03e397c28  google::LogMessage::Flush()
    @     0x7fe03e39a999  google::LogMessageFatal::~LogMessageFatal()
    @     0x7fe03ead741c  caffe::MKLDNNPoolingLayer<>::InitPoolingBwd()
    @     0x7fe03eac4ec2  caffe::MKLDNNPoolingLayer<>::Backward_cpu()
    @     0x7fe03e8f9b19  caffe::Net<>::Backward()
    @     0x5622d81a2530  (unknown)
    @     0x5622d8199353  (unknown)
    @     0x7fe03ab09b97  __libc_start_main
    @     0x5622d8198e1a  (unknown)

Я предполагаю, что естьнекоторая проблема с тем, как я использую команду, и для этого мне, возможно, придется изменить файл .prototxt.

Буду признателен, если кто-нибудь укажет мне правильное направление в отношении того, как получить номера тестов.для Alexnet в фазе тестирования.

PS: Я не смог выяснить, что произойдет, если вы просто запустите время кафе без указания фазы.Соответствует ли он этапам TEST и TRAIN?

...