1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
6 * @brief This is a header file for the ICNNNetworkStats class
7 * @file ie_icnn_network_stats.hpp
16 #include "details/ie_irelease.hpp"
18 namespace InferenceEngine {
20 class NetworkNodeStats;
22 using NetworkNodeStatsPtr = std::shared_ptr<NetworkNodeStats>;
23 using NetworkNodeStatsWeakPtr = std::weak_ptr<NetworkNodeStats>;
24 using NetworkStatsMap = std::map<std::string, NetworkNodeStatsPtr>;
26 * @class ICNNNetworkStats
27 * @brief This is the interface to describe the NN topology scoring statistics
29 class ICNNNetworkStats : public details::IRelease {
31 virtual void setNodesStats(const NetworkStatsMap& stats) = 0;
32 virtual const NetworkStatsMap& getNodesStats() const = 0;
34 virtual bool isEmpty() const = 0;
38 class NetworkNodeStats {
40 NetworkNodeStats() { }
41 explicit NetworkNodeStats(int statCount) {
42 float mn = (std::numeric_limits<float>::max)();
43 float mx = (std::numeric_limits<float>::min)();
45 for (int i = 0; i < statCount; i++) {
46 _minOutputs.push_back(mn);
47 _maxOutputs.push_back(mx);
52 std::vector<float> _minOutputs;
53 std::vector<float> _maxOutputs;
57 } // namespace InferenceEngine