19 #include <unordered_map> 21 #include "caffe2/core/common.h" 22 #include "caffe2/core/context_gpu.h" 23 #include "caffe2/core/event.h" 24 #include "caffe2/core/net.h" 25 #include "caffe2/core/observer.h" 26 #include "caffe2/core/operator.h" 27 #include "caffe2/core/timer.h" 28 #include "caffe2/observers/operator_attaching_net_observer.h" 29 #include "caffe2/operators/rnn/rnn_capable_operator_observer.h" 40 class ProfileObserver;
47 float start_time_ = 0.0f;
48 float run_time_ = 0.0f;
62 net_position_ = subject->net_position();
71 net_position_ = net_position;
72 rnn_order_ = rnn_order;
75 std::unique_ptr<ObserverBase<OperatorBase>> rnnCopy(
77 int rnnOrder)
const override;
81 virtual std::string getId()
const {
84 if (rnn_order_ != OperatorBase::kNoNetPositionSet) {
85 ss <<
"-" << rnn_order_;
95 void Start()
override;
100 ProfileOperatorObserver,
108 void Start()
override{};
109 void Stop()
override{};
112 vector<const ProfileOperatorObserver*> operator_observers_;
A global dictionary that holds information about what Caffe2 modules have been loaded in the current ...
Inherit to make your class observable.
A simple timer object for measuring time.