如何使用pycaffe接口对每一层(包括python层)进行计时
How to timing each layer(including python layer) with pycaffe interface
有人可以与我分享如何使用 pycaffe 界面为每一层计时,包括一些自定义的 python 层吗?
我观察到caffe源文件中有定时操作:tools/caffe.cpp:
forward_timer.Start();
for (int i = 0; i < layers.size(); ++i) {
timer.Start();
layers[i]->Forward(bottom_vecs[i], top_vecs[i]);
forward_time_per_layer[i] += timer.MicroSeconds();
}
但是不知道pycaffe界面怎么用
有官方文档说:
Benchmarking: caffe time benchmarks model execution layer-by-layer
through timing and synchronization. This is useful to check system
performance and measure relative execution times for models.
caffe time -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -gpu 0 -iterations 10
但这在caffe命令行中使用,我实际上是运行 faster-rcnn
,其中包含python实现,并由python脚本调用,我不会知道怎么用了。
使用命令caffe time -model xxx.prototxt -weight caffemodel
,它找不到我的python层,如何设置路径让caffe能找到它?
编辑:将python层文件路径添加到PYTHONPATH后,它可以找到模块,但会发生一些错误,当我使用python接口时不会发生这种情况:
F0119 22:24:39.621578 9314 net.cpp:141] Check failed: param_size <= num_param_blobs (0 vs. -2) Too many params specified for layer proposal
*** Check failure stack trace: ***
@ 0x7efd9bde9daa (unknown)
@ 0x7efd9bde9ce4 (unknown)
@ 0x7efd9bde96e6 (unknown)
@ 0x7efd9bdec687 (unknown)
@ 0x7efd9c4555b6 caffe::Net<>::Init()
@ 0x7efd9c45667b caffe::Net<>::Net()
@ 0x408c0c time()
@ 0x405bec main
@ 0x7efd9a799f45 (unknown)
@ 0x4064f3 (unknown)
@ (nil) (unknown)
Aborted
只需在 net.cpp
中的 ForwardFromto()
添加时间线
有人可以与我分享如何使用 pycaffe 界面为每一层计时,包括一些自定义的 python 层吗?
我观察到caffe源文件中有定时操作:tools/caffe.cpp:
forward_timer.Start();
for (int i = 0; i < layers.size(); ++i) {
timer.Start();
layers[i]->Forward(bottom_vecs[i], top_vecs[i]);
forward_time_per_layer[i] += timer.MicroSeconds();
}
但是不知道pycaffe界面怎么用
有官方文档说:
Benchmarking: caffe time benchmarks model execution layer-by-layer through timing and synchronization. This is useful to check system performance and measure relative execution times for models.
caffe time -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -gpu 0 -iterations 10
但这在caffe命令行中使用,我实际上是运行 faster-rcnn
,其中包含python实现,并由python脚本调用,我不会知道怎么用了。
使用命令caffe time -model xxx.prototxt -weight caffemodel
,它找不到我的python层,如何设置路径让caffe能找到它?
编辑:将python层文件路径添加到PYTHONPATH后,它可以找到模块,但会发生一些错误,当我使用python接口时不会发生这种情况:
F0119 22:24:39.621578 9314 net.cpp:141] Check failed: param_size <= num_param_blobs (0 vs. -2) Too many params specified for layer proposal
*** Check failure stack trace: ***
@ 0x7efd9bde9daa (unknown)
@ 0x7efd9bde9ce4 (unknown)
@ 0x7efd9bde96e6 (unknown)
@ 0x7efd9bdec687 (unknown)
@ 0x7efd9c4555b6 caffe::Net<>::Init()
@ 0x7efd9c45667b caffe::Net<>::Net()
@ 0x408c0c time()
@ 0x405bec main
@ 0x7efd9a799f45 (unknown)
@ 0x4064f3 (unknown)
@ (nil) (unknown)
Aborted
只需在 net.cpp
ForwardFromto()
添加时间线