MCPcopy Create free account
hub / github.com/catboost/catboost / OfflineMetricVisualizer

Class OfflineMetricVisualizer

catboost/python-package/catboost/plot_helpers.py:59–184  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57
58
59class OfflineMetricVisualizer(object):
60 def __init__(self, train_dirs):
61 if isinstance(train_dirs, str):
62 train_dirs = [train_dirs]
63 self._load_data(train_dirs)
64
65 def _update_data_from_dir(self, path):
66 data = {
67 'iterations': [],
68 'meta': {}
69 }
70
71 training_json = os.path.join(path, 'catboost_training.json')
72
73 if os.path.isfile(training_json):
74 try:
75 with open(training_json, 'r') as json_data:
76 training_data = json.load(json_data)
77 data['meta'] = training_data['meta']
78 data['iterations'] = training_data['iterations']
79 except ValueError:
80 pass
81
82 return {
83 'passed_iterations': data['iterations'][-1]['iteration'] if data['iterations'] else 0,
84 'total_iterations': data['meta']['iteration_count'] if data['meta'] else 0,
85 'data': data
86 }
87
88 def _load_data(self, train_dirs):
89 names = []
90 curdir = os.path.abspath(os.path.curdir)
91 for train_dir in train_dirs:
92 abspath = os.path.abspath(train_dir)
93 names.append(os.path.basename(abspath) if abspath != curdir else 'current')
94
95 data = {}
96 dirs = [{'name': name, 'path': path} for name, path in zip(names, train_dirs)]
97
98 for dir_info in dirs:
99 path = dir_info.get('path')
100 content = self._update_data_from_dir(path)
101
102 if not content:
103 continue
104
105 data[path] = {
106 'path': path,
107 'name': dir_info.get('name'),
108 'content': content
109 }
110 self.data = data
111
112 def _get_plotly_figs(self, title):
113 try:
114 import plotly.graph_objs as go
115 except ImportError as err:
116 warnings.warn("To save plots to files you should install plotly.")

Callers 1

plot_wrapperFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected