Example #1
0
 def test_audio(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="audio",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 audio=V1EventAudio(sample_rate=1.1,
                                    num_channels=2,
                                    length_frames=2,
                                    path="test"),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 audio=V1EventAudio(sample_rate=1.1,
                                    num_channels=2,
                                    length_frames=2,
                                    path="test"),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 audio=V1EventAudio(sample_rate=1.12,
                                    num_channels=22,
                                    length_frames=22,
                                    path="test"),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #2
0
 def test_dataframe(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="dataframe",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 dataframe=V1EventDataframe(path="path",
                                            content_type="parquet"),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 dataframe=V1EventDataframe(path="path",
                                            content_type="pickle"),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 dataframe=V1EventDataframe(path="path"),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
    def test_init_events(self):
        events = LoggedEventListSpec(name="test", kind="metric", events=[])

        run_path = tempfile.mkdtemp()
        ew = EventWriter(run_path=run_path, backend=EventWriter.EVENTS_BACKEND)

        event_file = ew._get_event_path(name=events.name, kind=events.kind)

        assert os.path.exists(event_file) is False
        ew._init_events(events)
        assert os.path.exists(event_file) is True
        expected_events = V1Events.read(kind="metric", name="test", data=event_file)
        assert expected_events.name == events.name
        assert expected_events.kind == events.kind

        # Init same file
        ew._init_events(events)
        assert os.path.exists(event_file) is True

        # New file
        events = LoggedEventListSpec(name="new", kind="text", events=[])

        new_event_file = ew._get_event_path(name=events.name, kind=events.kind)

        assert os.path.exists(new_event_file) is False
        ew._init_events(events)
        assert os.path.exists(new_event_file) is True
        expected_events = V1Events.read(kind="text", name="new", data=new_event_file)
        assert expected_events.name == events.name
        assert expected_events.kind == events.kind

        # Previous file should still be there
        assert os.path.exists(event_file) is True
Example #4
0
 def create_tmp_events(self, run_events: str):
     metric1 = LoggedEventListSpec(
         name="metric1",
         kind=V1ArtifactKind.METRIC,
         events=[
             V1Event.make(step=1, metric=1.1),
             V1Event.make(step=2, metric=1.2),
         ],
     )
     self.create_kind_events(
         run_events=run_events,
         name="metric1",
         kind=V1ArtifactKind.METRIC,
         events=metric1,
     )
     metric2 = LoggedEventListSpec(
         name="metric2",
         kind=V1ArtifactKind.METRIC,
         events=[
             V1Event.make(step=1, metric=2.1),
             V1Event.make(step=2, metric=2.2),
         ],
     )
     self.create_kind_events(
         run_events=run_events,
         name="metric2",
         kind=V1ArtifactKind.METRIC,
         events=metric2,
     )
Example #5
0
 def test_video(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="video",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 video=V1EventVideo(height=1,
                                    width=1,
                                    colorspace=1,
                                    path="path"),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 video=V1EventVideo(height=10,
                                    width=1,
                                    colorspace=0,
                                    path="path"),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 video=V1EventVideo(height=1,
                                    width=10,
                                    colorspace=2,
                                    path="path"),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #6
0
 def _init_events(self, events_spec: LoggedEventListSpec):
     event_path = self._get_event_path(kind=events_spec.kind, name=events_spec.name)
     # Check if the file exists otherwise initialize
     if not os.path.exists(event_path):
         check_or_create_path(event_path, is_dir=False)
         with open(event_path, "w") as event_file:
             event_file.write(events_spec.get_csv_header())
Example #7
0
 def create_tmp_events(self):
     text1 = LoggedEventListSpec(
         name="text1",
         kind=V1ArtifactKind.TEXT,
         events=[
             V1Event.make(step=1, text="foo1"),
             V1Event.make(step=2, text="boo2"),
         ],
     )
     self.create_kind_events(name="text1",
                             kind=V1ArtifactKind.TEXT,
                             events=text1)
     text2 = LoggedEventListSpec(
         name="text2",
         kind=V1ArtifactKind.TEXT,
         events=[
             V1Event.make(step=1, text="foo2"),
             V1Event.make(step=2, text="boo2"),
         ],
     )
     self.create_kind_events(name="text2",
                             kind=V1ArtifactKind.TEXT,
                             events=text2)
     html1 = LoggedEventListSpec(
         name="html1",
         kind=V1ArtifactKind.HTML,
         events=[
             V1Event.make(step=1, html="foo1"),
             V1Event.make(step=2, html="boo2"),
         ],
     )
     self.create_kind_events(name="html1",
                             kind=V1ArtifactKind.HTML,
                             events=html1)
     html2 = LoggedEventListSpec(
         name="htm2",
         kind=V1ArtifactKind.HTML,
         events=[
             V1Event.make(step=1, html="foo2"),
             V1Event.make(step=2, html="boo2"),
         ],
     )
     self.create_kind_events(name="html2",
                             kind=V1ArtifactKind.HTML,
                             events=html2)
Example #8
0
 def _events_to_files(self, events: List[LoggedEventSpec]):
     for event in events:
         file_name = "{}.{}".format(event.kind, event.name)
         if file_name in self._files:
             self._files[file_name].events.append(event.event)
         else:
             self._files[file_name] = LoggedEventListSpec(
                 kind=event.kind, name=event.name, events=[event.event])
             self._init_events(self._files[file_name])
Example #9
0
 def test_curve(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="curve",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 curve=V1EventCurve(
                     kind="roc",
                     x=[1.1, 3.1, 5.1],
                     y=[0.1, 0.3, 0.4],
                     annotation="0.1",
                 ),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 curve=V1EventCurve(
                     kind="pr",
                     x=[1.1, 3.1, 5.1],
                     y=[0.1, 0.3, 0.4],
                     annotation="0.21",
                 ),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 curve=V1EventCurve(
                     kind="custom",
                     x=[1.1, 3.1, 5.1],
                     y=[0.1, 0.3, 0.4],
                     annotation="0.1",
                 ),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #10
0
 def test_html(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="html",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 html="<div>1</div>",
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 html="<div>2</div>",
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 html="<div>3</div>",
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #11
0
 def test_metrics(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="metric",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 metric=0.1,
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 metric=0.112,
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 metric=0.1,
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #12
0
 def test_images(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="metric",
         events=[
             V1Event(
                 timestamp=parse_datetime("2018-12-11 10:24:57"),
                 image=V1EventImage(height=1, width=1, colorspace=1, path="path"),
                 step=12,
             ),
             V1Event(
                 timestamp=parse_datetime("2018-12-11 11:24:57"),
                 image=V1EventImage(height=10, width=1, colorspace=0, path="path"),
                 step=13,
             ),
             V1Event(
                 timestamp=parse_datetime("2018-12-11 12:24:57"),
                 image=V1EventImage(height=1, width=10, colorspace=2, path="path"),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #13
0
 def test_model(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="model",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 model=V1EventModel(framework="tensorflow", path="path"),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 model=V1EventModel(framework="pytorch", path="path"),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 model=V1EventModel(framework="onnx", path="path"),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #14
0
 def test_artifact(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="artifact",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 artifact=V1EventArtifact(kind="dataframe", path="path"),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 artifact=V1EventArtifact(kind="tsv", path="path"),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 artifact=V1EventArtifact(kind="csv", path="path"),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #15
0
 def test_chart(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="chart",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 chart=V1EventChart(kind="plotly", figure={"foo": "bar"}),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 chart=V1EventChart(kind="vega", figure={"foo": "bar"}),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 chart=V1EventChart(kind="bokeh", figure={"foo": "bar"}),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #16
0
 def test_histogram(self):
     events = LoggedEventListSpec(
         name="foo",
         kind="histogram",
         events=[
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 10:24:57"),
                 histogram=V1EventHistogram(values=[10], counts=[1]),
                 step=12,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 11:24:57"),
                 histogram=V1EventHistogram(values=[10], counts=[1]),
                 step=13,
             ),
             V1Event(
                 timestamp=dt_parser.parse("2018-12-11 12:24:57"),
                 histogram=V1EventHistogram(values=[10], counts=[1]),
                 step=14,
             ),
         ],
     )
     events_dict = events.to_dict()
     assert events_dict == events.from_dict(events_dict).to_dict()
Example #17
0
 def _append_events(self, events_spec: LoggedEventListSpec):
     event_path = self._get_event_path(kind=events_spec.kind,
                                       name=events_spec.name)
     with open(event_path, "a") as event_file:
         event_file.write(events_spec.get_csv_events())