blob: 2f896f524884997803dce7e3bdf57ac3aa60b6cf [file] [log] [blame]
#include "runcnt_observer.h"
namespace caffe2 {
RunCountOperatorObserver::RunCountOperatorObserver(
OperatorBase* op,
RunCountNetObserver* netObserver)
: ObserverBase<OperatorBase>(op), netObserver_(netObserver) {
CAFFE_ENFORCE(netObserver_, "Observers can't operate outside of the net");
}
std::string RunCountNetObserver::debugInfo() {
#ifdef C10_ANDROID
// workaround
int foo = cnt_;
return "This operator runs " + c10::to_string(foo) + " times.";
#else
return "This operator runs " + c10::to_string(cnt_) + " times.";
#endif
}
void RunCountNetObserver::Start() {}
void RunCountNetObserver::Stop() {}
void RunCountOperatorObserver::Start() {
++netObserver_->cnt_;
}
void RunCountOperatorObserver::Stop() {}
std::unique_ptr<ObserverBase<OperatorBase>> RunCountOperatorObserver::rnnCopy(
OperatorBase* subject,
int rnn_order) const {
return std::unique_ptr<ObserverBase<OperatorBase>>(
new RunCountOperatorObserver(subject, netObserver_));
}
} // namespace caffe2