Exemplo n.º 1
0
    def test_log_data_image(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        self.run.log_image(name="my_image",
                           data=tensor_np(shape=(1, 8, 8)),
                           dataformats="CHW")
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.IMAGE,
                                     name="my_image")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image",
                                name="my_image",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.IMAGE,
                                    name="my_image",
                                    ext="png")
        assert os.path.exists(asset_file) is True
Exemplo n.º 2
0
    def test_log_image_with_boxes(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        image_file = tempfile.mkdtemp() + "/file.png"
        self.touch(image_file)
        self.run.log_image_with_boxes(
            name="my_image",
            tensor_image=tensor_np(shape=(3, 32, 32)),
            tensor_boxes=np.array([[10, 10, 40, 40]]),
        )
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.IMAGE,
                                     name="my_image")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image",
                                name="my_image",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.IMAGE,
                                    name="my_image")
        assert os.path.exists(asset_file) is True
Exemplo n.º 3
0
    def test_log_image_from_path(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        image_file = tempfile.mkdtemp() + "/file.png"
        self.touch(image_file)
        self.run.log_image(name="my_image", data=image_file)
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.IMAGE,
                                     name="my_image")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image",
                                name="my_image",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.IMAGE,
                                    name="my_image",
                                    ext="png")
        assert os.path.exists(asset_file) is True
Exemplo n.º 4
0
    def test_log_model_dir(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.MODEL)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.MODEL)) is False)
        model_dir = tempfile.mkdtemp() + "/model"
        create_path(model_dir)
        model_file = model_dir + "/model.pkl"
        self.touch(model_file)
        weights_file = model_dir + "/weights"
        self.touch(weights_file)
        configs_file = model_dir + "/configs"
        self.touch(configs_file)
        self.run.log_model(name="my_model",
                           path=model_dir,
                           framework="tensorflow")
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.MODEL)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.MODEL)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.MODEL,
                                     name="my_model")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="model",
                                name="my_model",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.MODEL,
                                    name="my_model")
        assert os.path.exists(asset_file) is True
Exemplo n.º 5
0
 def test_log_np_histogram(self):
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is False
     )
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is False
     )
     values, counts = np.histogram(np.random.randint(255, size=(1000,)))
     with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
         self.run.log_np_histogram(
             name="histo", values=values, counts=counts, step=1
         )
     assert log_dashboard.call_count == 1
     self.event_logger.flush()
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is False
     )
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is True
     )
     events_file = get_event_path(
         self.run_path, kind=V1ArtifactKind.HISTOGRAM, name="histo"
     )
     assert os.path.exists(events_file) is True
     results = V1Events.read(kind="histogram", name="histo", data=events_file)
     assert len(results.df.values) == 1
Exemplo n.º 6
0
 def test_log_np_histogram(self):
     assert (os.path.exists(
         get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             False)
     assert (os.path.exists(
         get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             False)
     values, counts = np.histogram(np.random.randint(255, size=(1000)))
     self.run.log_np_histogram(name="histo",
                               values=values,
                               counts=counts,
                               step=1)
     self.event_logger.flush()
     assert (os.path.exists(
         get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             False)
     assert (os.path.exists(
         get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             True)
     events_file = get_event_path(self.run_path,
                                  kind=V1ArtifactKind.HISTOGRAM,
                                  name="histo")
     assert os.path.exists(events_file) is True
     results = V1Events.read(kind="histogram",
                             name="histo",
                             data=events_file)
     assert len(results.df.values) == 1
Exemplo n.º 7
0
    def test_log_model_file(self):
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.MODEL))
            is False
        )
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.MODEL))
            is False
        )
        model_file = tempfile.mkdtemp() + "model.pkl"
        self.touch(model_file)
        with patch("polyaxon.tracking.run.Run._log_has_model") as log_model:
            self.run.log_model(name="my_model", path=model_file, framework="scikit")
        assert log_model.call_count == 1
        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.MODEL))
            is True
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.MODEL))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.MODEL, name="my_model"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="model", name="my_model", data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(
            self.run_path, kind=V1ArtifactKind.MODEL, name="my_model", ext="pkl"
        )
        assert os.path.exists(asset_file) is True
Exemplo n.º 8
0
    def test_log_data_audio(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is False)
        self.run.log_audio(name="my_audio", data=tensor_np(shape=(42, )))
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.AUDIO,
                                     name="my_audio")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="audio",
                                name="my_audio",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.AUDIO,
                                    name="my_audio",
                                    ext="wav")
        assert os.path.exists(asset_file) is True
Exemplo n.º 9
0
 def test_log_histogram(self):
     assert (os.path.exists(
         get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             False)
     assert (os.path.exists(
         get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             False)
     self.run.log_histogram(name="histo",
                            values=tensor_np(shape=(1024, )),
                            bins="auto",
                            step=1)
     self.run.log_histogram(name="histo",
                            values=tensor_np(shape=(1024, )),
                            bins="fd",
                            step=1)
     self.run.log_histogram(name="histo",
                            values=tensor_np(shape=(1024, )),
                            bins="doane",
                            step=1)
     self.event_logger.flush()
     assert (os.path.exists(
         get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             False)
     assert (os.path.exists(
         get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM)) is
             True)
     events_file = get_event_path(self.run_path,
                                  kind=V1ArtifactKind.HISTOGRAM,
                                  name="histo")
     assert os.path.exists(events_file) is True
     results = V1Events.read(kind="histogram",
                             name="histo",
                             data=events_file)
     assert len(results.df.values) == 3
Exemplo n.º 10
0
    def test_log_audio_from_path(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is False)
        audio_file = tempfile.mkdtemp() + "/audio.wav"
        self.touch(audio_file)
        self.run.log_audio(name="my_audio", data=audio_file)
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.AUDIO)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.AUDIO,
                                     name="my_audio")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="audio",
                                name="my_audio",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.AUDIO,
                                    name="my_audio",
                                    ext="wav")
        assert os.path.exists(asset_file) is True
Exemplo n.º 11
0
    def test_log_data_video(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is False)
        self.run.log_video(name="my_video",
                           data=tensor_np(shape=(4, 3, 1, 8, 8)))
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.VIDEO,
                                     name="my_video")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="video",
                                name="my_video",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.VIDEO,
                                    name="my_video",
                                    ext="gif")
        assert os.path.exists(asset_file) is True
Exemplo n.º 12
0
    def test_log_video_from_path(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is False)
        video_file = tempfile.mkdtemp() + "/video.gif"
        self.touch(video_file)
        self.run.log_video(name="my_video", data=video_file)
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.VIDEO)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.VIDEO,
                                     name="my_video")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="video",
                                name="my_video",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.VIDEO,
                                    name="my_video",
                                    ext="gif")
        assert os.path.exists(asset_file) is True
Exemplo n.º 13
0
 def test_log_histogram(self):
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is False
     )
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is False
     )
     with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
         self.run.log_histogram(
             name="histo", values=tensor_np(shape=(1024,)), bins="auto", step=1
         )
         self.run.log_histogram(
             name="histo", values=tensor_np(shape=(1024,)), bins="fd", step=1
         )
         self.run.log_histogram(
             name="histo", values=tensor_np(shape=(1024,)), bins="doane", step=1
         )
     assert log_dashboard.call_count == 3
     self.event_logger.flush()
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is False
     )
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.HISTOGRAM))
         is True
     )
     events_file = get_event_path(
         self.run_path, kind=V1ArtifactKind.HISTOGRAM, name="histo"
     )
     assert os.path.exists(events_file) is True
     results = V1Events.read(kind="histogram", name="histo", data=events_file)
     assert len(results.df.values) == 3
Exemplo n.º 14
0
    def test_log_dataframe(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.DATAFRAME)) is
                False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.DATAFRAME)) is
                False)
        model_file = tempfile.mkdtemp() + "/df.pkl"
        self.touch(model_file)
        self.run.log_dataframe(name="dataframe",
                               path=model_file,
                               content_type="pickel")
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.DATAFRAME)) is
                True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.DATAFRAME)) is
                True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.DATAFRAME,
                                     name="dataframe")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="dataframe",
                                name="dataframe",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.DATAFRAME,
                                    name="dataframe",
                                    ext="pkl")
        assert os.path.exists(asset_file) is True
Exemplo n.º 15
0
 def test_log_html(self):
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.HTML))
         is False
     )
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.HTML))
         is False
     )
     with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
         self.run.log_html(name="my_div", html="<div>test<div/>", step=1)
     assert log_dashboard.call_count == 1
     self.event_logger.flush()
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.HTML))
         is False
     )
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.HTML))
         is True
     )
     events_file = get_event_path(
         self.run_path, kind=V1ArtifactKind.HTML, name="my_div"
     )
     assert os.path.exists(events_file) is True
     results = V1Events.read(kind="html", name="my_div", data=events_file)
     assert len(results.df.values) == 1
Exemplo n.º 16
0
    def test_log_text(self):
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.TEXT))
            is False
        )
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.TEXT))
            is False
        )
        with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
            self.run.log_text(name="my_text", text="some text", step=1)
        assert log_dashboard.call_count == 1

        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.TEXT))
            is False
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.TEXT))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.TEXT, name="my_text"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="text", name="my_text", data=events_file)
        assert len(results.df.values) == 1
Exemplo n.º 17
0
    def test_log_artifact(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.TSV)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.TSV)) is False)
        tsv_file = tempfile.mkdtemp() + "/file.tsv"
        self.touch(tsv_file)
        self.run.log_artifact(name="file",
                              path=tsv_file,
                              artifact_kind=V1ArtifactKind.TSV)
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.TSV)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.TSV)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.TSV,
                                     name="file")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind=V1ArtifactKind.TSV,
                                name="file",
                                data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.TSV,
                                    name="file",
                                    ext="tsv")
        assert os.path.exists(asset_file) is True
Exemplo n.º 18
0
    def test_log_video_from_path(self):
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.VIDEO))
            is False
        )
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.VIDEO))
            is False
        )
        video_file = tempfile.mkdtemp() + "/video.gif"
        self.touch(video_file)
        with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
            self.run.log_video(name="my_video", data=video_file)
        assert log_dashboard.call_count == 1
        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.VIDEO))
            is True
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.VIDEO))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.VIDEO, name="my_video"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="video", name="my_video", data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(
            self.run_path, kind=V1ArtifactKind.VIDEO, name="my_video", ext="gif"
        )
        assert os.path.exists(asset_file) is True
Exemplo n.º 19
0
    def test_log_data_audio(self):
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.AUDIO))
            is False
        )
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.AUDIO))
            is False
        )
        with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
            self.run.log_audio(name="my_audio", data=tensor_np(shape=(42,)))
        assert log_dashboard.call_count == 1
        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.AUDIO))
            is True
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.AUDIO))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.AUDIO, name="my_audio"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="audio", name="my_audio", data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(
            self.run_path, kind=V1ArtifactKind.AUDIO, name="my_audio", ext="wav"
        )
        assert os.path.exists(asset_file) is True
Exemplo n.º 20
0
    def test_log_data_image(self):
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is False
        )
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is False
        )
        with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
            self.run.log_image(
                name="my_image", data=tensor_np(shape=(1, 8, 8)), dataformats="CHW"
            )
        assert log_dashboard.call_count == 1
        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is True
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.IMAGE, name="my_image"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="my_image", data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(
            self.run_path, kind=V1ArtifactKind.IMAGE, name="my_image", ext="png"
        )
        assert os.path.exists(asset_file) is True
Exemplo n.º 21
0
    def test_log_image_from_path_with_step(self):
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is False
        )
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is False
        )
        image_file = tempfile.mkdtemp() + "/file.png"
        self.touch(image_file)
        with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
            self.run.log_image(name="my_image", data=image_file, step=1)
        assert log_dashboard.call_count == 1
        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is True
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.IMAGE, name="my_image"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="my_image", data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(
            self.run_path, kind=V1ArtifactKind.IMAGE, name="my_image", step=1, ext="png"
        )
        assert os.path.exists(asset_file) is True
Exemplo n.º 22
0
 def test_log_single_metric(self):
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.METRIC))
         is False
     )
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.METRIC))
         is False
     )
     with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
         self.run.log_metrics(step=1, metric1=1.1)
     assert log_dashboard.call_count == 1
     self.event_logger.flush()
     assert (
         os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.METRIC))
         is False
     )
     assert (
         os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.METRIC))
         is True
     )
     events_file = get_event_path(
         self.run_path, kind=V1ArtifactKind.METRIC, name="metric1"
     )
     assert os.path.exists(events_file) is True
     results = V1Events.read(kind="metric", name="metric1", data=events_file)
     assert len(results.df.values) == 1
Exemplo n.º 23
0
    def test_log_mpl_plotly(self):
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.CHART))
            is False
        )
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.CHART))
            is False
        )

        figure, axes = plt.figure(), plt.gca()
        circle1 = plt.Circle((0.2, 0.5), 0.2, color="r")
        circle2 = plt.Circle((0.8, 0.5), 0.2, color="g")
        axes.add_patch(circle1)
        axes.add_patch(circle2)
        plt.axis("scaled")
        plt.tight_layout()

        with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
            self.run.log_mpl_plotly_chart(name="figure", figure=figure, step=1)
        assert log_dashboard.call_count == 1

        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.CHART))
            is False
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.CHART))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.CHART, name="figure"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="figure", data=events_file)
        assert len(results.df.values) == 1

        with patch("polyaxon.tracking.run.Run._log_has_events") as log_dashboard:
            self.run.log_mpl_plotly_chart(name="figure", figure=figure, step=2)
        assert log_dashboard.call_count == 1
        assert plt.fignum_exists(figure.number) is False

        self.event_logger.flush()
        assert (
            os.path.exists(get_asset_path(self.run_path, kind=V1ArtifactKind.CHART))
            is False
        )
        assert (
            os.path.exists(get_event_path(self.run_path, kind=V1ArtifactKind.CHART))
            is True
        )
        events_file = get_event_path(
            self.run_path, kind=V1ArtifactKind.CHART, name="figure"
        )
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="figure", data=events_file)
        assert len(results.df.values) == 2
Exemplo n.º 24
0
    def test_log_mpl_images(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)

        figures = []
        for i in range(5):
            figure = plt.figure()
            plt.plot([i * 1, i * 2, i * 3], label="Plot " + str(i))
            plt.xlabel("X")
            plt.xlabel("Y")
            plt.legend()
            plt.tight_layout()
            figures.append(figure)

        self.run.log_mpl_image(name="figure",
                               data=figures,
                               step=1,
                               close=False)
        assert all(
            [plt.fignum_exists(figure.number) is True for figure in figures])

        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.IMAGE,
                                     name="figure")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="figure", data=events_file)
        assert len(results.df.values) == 1

        self.run.log_mpl_image(name="figure", data=figures, step=2)
        assert all(
            [plt.fignum_exists(figure.number) is False for figure in figures])

        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.IMAGE,
                                     name="figure")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="figure", data=events_file)
        assert len(results.df.values) == 2

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.IMAGE,
                                    name="figure",
                                    step=1,
                                    ext="png")
        assert os.path.exists(asset_file) is True
Exemplo n.º 25
0
    def test_log_mpl_image(self):
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is False)

        figure, axes = plt.figure(), plt.gca()
        circle1 = plt.Circle((0.2, 0.5), 0.2, color="r")
        circle2 = plt.Circle((0.8, 0.5), 0.2, color="g")
        axes.add_patch(circle1)
        axes.add_patch(circle2)
        plt.axis("scaled")
        plt.tight_layout()

        self.run.log_mpl_image(name="figure", data=figure, step=1, close=False)
        assert plt.fignum_exists(figure.number) is True

        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.IMAGE,
                                     name="figure")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="figure", data=events_file)
        assert len(results.df.values) == 1

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.IMAGE,
                                    name="figure",
                                    step=1,
                                    ext="png")
        assert os.path.exists(asset_file) is True

        self.run.log_mpl_image(name="figure", data=figure, step=2)
        assert plt.fignum_exists(figure.number) is False

        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.IMAGE)) is True)
        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.IMAGE,
                                     name="figure")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind="image", name="figure", data=events_file)
        assert len(results.df.values) == 2

        asset_file = get_asset_path(self.run_path,
                                    kind=V1ArtifactKind.IMAGE,
                                    name="figure",
                                    step=1,
                                    ext="png")
        assert os.path.exists(asset_file) is True
Exemplo n.º 26
0
 def test_log_empty_metric(self):
     assert (os.path.exists(
         get_event_path(self.run_path, kind=V1ArtifactKind.METRIC)) is
             False)
     assert (os.path.exists(
         get_asset_path(self.run_path, kind=V1ArtifactKind.METRIC)) is
             False)
     self.run.log_metrics()
     self.event_logger.flush()
     assert (os.path.exists(
         get_event_path(self.run_path, kind=V1ArtifactKind.METRIC)) is
             False)
     assert (os.path.exists(
         get_asset_path(self.run_path, kind=V1ArtifactKind.METRIC)) is
             False)
Exemplo n.º 27
0
    def test_log_charts(self):
        x = [1, 2, 3, 4, 5]
        y = [6, 7, 2, 4, 5]
        bokeh_test = figure(title="simple line example",
                            x_axis_label="x",
                            y_axis_label="y")
        bokeh_test.line(x, y, line_width=2)

        x1 = np.random.randn(200) - 2
        x2 = np.random.randn(200)
        x3 = np.random.randn(200) + 2
        hist_data = [x1, x2, x3]
        group_labels = ["Group 1", "Group 2", "Group 3"]
        plotly_test = figure_factory.create_distplot(hist_data,
                                                     group_labels,
                                                     bin_size=[0.1, 0.25, 0.5])

        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.CHART)) is False)
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.CHART)) is False)
        self.run.log_bokeh_chart(name="bokeh_test", figure=bokeh_test, step=1)
        self.run.log_plotly_chart(name="plotly_test",
                                  figure=plotly_test,
                                  step=1)
        self.event_logger.flush()
        assert (os.path.exists(
            get_asset_path(self.run_path, kind=V1ArtifactKind.CHART)) is False)
        assert (os.path.exists(
            get_event_path(self.run_path, kind=V1ArtifactKind.CHART)) is True)

        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.CHART,
                                     name="bokeh_test")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind=V1ArtifactKind.CHART,
                                name="bokeh_test",
                                data=events_file)
        assert len(results.df.values) == 1

        events_file = get_event_path(self.run_path,
                                     kind=V1ArtifactKind.CHART,
                                     name="plotly_test")
        assert os.path.exists(events_file) is True
        results = V1Events.read(kind=V1ArtifactKind.CHART,
                                name="plotly_test",
                                data=events_file)
        assert len(results.df.values) == 1
Exemplo n.º 28
0
    def log_artifact(self,
                     path,
                     name=None,
                     artifact_kind=None,
                     step=None,
                     timestamp=None):
        name = name or os.path.basename(name)
        ext = get_path_extension(filepath=path)
        artifact_kind = artifact_kind or V1ArtifactKind.FILE

        asset_path = get_asset_path(
            run_path=self.artifacts_path,
            kind=artifact_kind,
            name=name,
            step=step,
            ext=ext,
        )

        artifact = events_processors.artifact_path(from_path=path,
                                                   asset_path=asset_path,
                                                   kind=artifact_kind)
        logged_event = LoggedEventSpec(
            name=name,
            kind=artifact_kind,
            event=V1Event(timestamp=timestamp, step=step, artifact=artifact),
        )
        self._event_logger.add_event(logged_event)
Exemplo n.º 29
0
 def log_image_with_boxes(
     self,
     tensor_image,
     tensor_boxes,
     name=None,
     step=None,
     timestamp=None,
     rescale=1,
     dataformats="CHW",
 ):
     name = name or "figure"
     asset_path = get_asset_path(
         run_path=self.artifacts_path,
         kind=V1ArtifactKind.IMAGE,
         name=name,
         step=step,
     )
     event_value = events_processors.image_boxes(
         asset_path=asset_path,
         tensor_image=tensor_image,
         tensor_boxes=tensor_boxes,
         rescale=rescale,
         dataformats=dataformats,
     )
     if event_value == UNKNOWN:
         return
     logged_event = LoggedEventSpec(
         name=name,
         kind=V1ArtifactKind.IMAGE,
         event=V1Event(timestamp=timestamp, step=step, image=event_value),
     )
     self._event_logger.add_event(logged_event)
Exemplo n.º 30
0
    def log_dataframe(self,
                      path,
                      name=None,
                      content_type=None,
                      step=None,
                      timestamp=None):
        name = name or os.path.basename(path)
        ext = get_path_extension(filepath=path)

        asset_path = get_asset_path(
            run_path=self.artifacts_path,
            kind=V1ArtifactKind.DATAFRAME,
            name=name,
            step=step,
            ext=ext,
        )
        df = events_processors.dataframe_path(from_path=path,
                                              asset_path=asset_path,
                                              content_type=content_type)
        logged_event = LoggedEventSpec(
            name=name,
            kind=V1ArtifactKind.DATAFRAME,
            event=V1Event(timestamp=timestamp, step=step, dataframe=df),
        )
        self._event_logger.add_event(logged_event)