(exp_dir, out_dir)
| 125 | |
| 126 | |
| 127 | def convert_scalars(exp_dir, out_dir): |
| 128 | run_to_series = load_run_to_series(os.path.join(exp_dir, _SCALARS_FILE)) |
| 129 | for run, series_list in run_to_series.items(): |
| 130 | w = create_writer_for_run(out_dir, run, "scalars") |
| 131 | for series in series_list: |
| 132 | tag = series["tag"] |
| 133 | summary_metadata = base64.b64decode(series["summary_metadata"]) |
| 134 | points = zip( |
| 135 | series["points"]["steps"], |
| 136 | series["points"]["wall_times"], |
| 137 | series["points"]["values"], |
| 138 | ) |
| 139 | first = True |
| 140 | for step, wall_time, value in points: |
| 141 | e = Event(step=step, wall_time=wall_time) |
| 142 | e.summary.value.add(tag=tag, simple_value=value) |
| 143 | # For scalars, only write summary metadata once per tag. |
| 144 | # This keeps the file more compact and unlike tensors or blobs, |
| 145 | # scalars are easy to interpret even without any metadata. |
| 146 | if first: |
| 147 | e.summary.value[0].metadata.MergeFromString( |
| 148 | summary_metadata |
| 149 | ) |
| 150 | first = False |
| 151 | w.add_event(e) |
| 152 | w.close() |
| 153 | |
| 154 | |
| 155 | def convert_tensors(exp_dir, out_dir): |
no test coverage detected
searching dependent graphs…