neural-network - 使用“咖啡时间”对 alexnet 测试进行基准测试
问题描述
我是 caffe 的新手,目前我正在尝试将它与 Alexnet 一起使用。当我说使用时,我的意思是我不想训练网络,因此,我得到了这里'.caffemodel'
提到的 for Alexnet 。
现在,我想使用 caffe 的时间功能来查看在 TEST 阶段执行每层所需的时间(我正在做的是在推理期间获取每层的执行时间)。
根据咖啡的选项
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
-------------------------
我可以在 TEST 阶段运行以下命令来对 Alexnet 进行基准测试:
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:如果您只运行 caffe time 而不指定 Phase,我无法弄清楚会发生什么。它是否对 TEST 和 TRAIN 阶段都进行了基准测试?
解决方案
推荐阅读
- javascript - 意外令牌{错误
- javascript - hml表单提交后如何运行jquery代码
- mysql - 使用 HeidiSql 访问 MySql
- haskell - 使用 catamorphism 忘记 Cofree 注释
- python - django-rest-framework-gis GeoFeatureModelSerializer 在序列化时返回更改/不正确的坐标
- javascript - chart.js : 圆环图中的标签
- php - 使用 PHP 和 AJAX 选择器表单查询 MySQL
- javascript - 如何在定义对象时访问它本身的属性?
- c - getchar() 陷入循环,永远不会到达 EOF
- python - pandas Dataframe 根据键列将 NaN 值替换为先前的值