2016-08-18 23 views
2

画像分類(例えばVGGまたはAlexNet)の畳み込みニューラルネットワークアーキテクチャでは、ネットワークの各レイヤの結果を計算するのにかかる時間を比較したいと思います。テスト時間に前方通過する(あらかじめCaffeを使用)。CNNの各レイヤの実行時間を測定する方法

特に、畳み込みレイヤーと完全接続レイヤーにどれだけの時間を費やしているのですか?

答えて

-1

すべてのカフェ層は、例えばsrc/caffe/layers/pooling_layer.cppため、src/caffe/layersディレクトリで前方と後方の機能を持つCPUの実装で、src/caffe/layers/pooling_layer.cuはあなたに応じて、あなたが.cppまたは.cuにフォワード機能で時間関数を追加する必要がimplementation.So GPUでありますCPUまたはGPUを使用しています。 caffe timeコマンド

0

それは2つのネットワークのみ畳み込み層を有する唯一の密集(完全に接続された)層を有するものを作成することで実行する別の方法を使用して

又は、最も簡単な方法、。畳み込みネットワークを使用して順方向パスを行い、その時間を測定し、結果(畳み込み専用ネットワークの出力)を完全に接続されたネットワークに渡し、順方向パスを行い、その時間を測定する。

0

だから、あなたは何の問題ですか? caffe timeは機能しませんでしたか?

0

何ちょうどこのようなあなたのテストのためにnet.cppclass caffe::Timerの使用に関する:

#include "caffe/util/benchmark.hpp" //use class caffe::Timer 

Dtype Net<Dtype>::ForwardFromTo(int start, int end) { 
    ... //Some original contents 
    Timer timer; 
    for (int i = start; i <= end; ++i) { 
    ...//Some original contents 
    string layer_name = layers_[i]->layer_param().name(); //get layer name 
    timer.Start(); 
    Dtype layer_loss = layers_[i]->Forward(bottom_vecs_[i], top_vecs_[i]); 
    float forward_time = timer.MicroSeconds(); 
    LOG(ERROR) << layer_name << " consumes: " << forward_time << " microseconds during forward."; 
    ... 
    } 
    return loss; 
} 
関連する問題