|
9 | 9 | """
|
10 | 10 |
|
11 | 11 | import datetime
|
| 12 | +import os |
12 | 13 | import pickle
|
13 | 14 | import time
|
14 | 15 | from collections import defaultdict
|
15 | 16 | from dataclasses import dataclass
|
16 | 17 | from pathlib import Path
|
17 | 18 | from typing import Any, Callable, Optional, TypeVar, Union, cast
|
18 | 19 |
|
| 20 | +import pytz |
19 | 21 | from tqdm.auto import tqdm
|
20 | 22 |
|
| 23 | +from rdagent.core.conf import RD_AGENT_SETTINGS |
21 | 24 | from rdagent.log import rdagent_logger as logger
|
22 | 25 | from rdagent.log.timer import RD_Agent_TIMER_wrapper, RDAgentTimer
|
23 | 26 |
|
| 27 | +if RD_AGENT_SETTINGS.enable_mlflow: |
| 28 | + import mlflow |
| 29 | + |
24 | 30 |
|
25 | 31 | class LoopMeta(type):
|
26 | 32 | @staticmethod
|
@@ -119,7 +125,27 @@ def run(self, step_n: int | None = None, loop_n: int | None = None, all_duration
|
119 | 125 | if loop_n <= 0:
|
120 | 126 | break
|
121 | 127 |
|
| 128 | + if RD_AGENT_SETTINGS.enable_mlflow: |
| 129 | + mlflow.log_metric("loop_index", self.loop_idx) |
| 130 | + mlflow.log_metric("step_index", self.step_idx) |
| 131 | + current_local_datetime = datetime.datetime.now(pytz.timezone("Asia/Shanghai")) |
| 132 | + float_like_datetime = ( |
| 133 | + current_local_datetime.second |
| 134 | + + current_local_datetime.minute * 1e2 |
| 135 | + + current_local_datetime.hour * 1e4 |
| 136 | + + current_local_datetime.day * 1e6 |
| 137 | + + current_local_datetime.month * 1e8 |
| 138 | + + current_local_datetime.year * 1e10 |
| 139 | + ) |
| 140 | + mlflow.log_metric("current_datetime", float_like_datetime) |
| 141 | + |
122 | 142 | if self.timer.started:
|
| 143 | + if RD_AGENT_SETTINGS.enable_mlflow: |
| 144 | + mlflow.log_metric("remain_time", self.timer.remain_time().seconds) # type: ignore[union-attr] |
| 145 | + mlflow.log_metric( |
| 146 | + "remain_percent", self.timer.remain_time() / self.timer.all_duration * 100 # type: ignore[operator] |
| 147 | + ) |
| 148 | + |
123 | 149 | if self.timer.is_timeout():
|
124 | 150 | logger.warning("Timeout, exiting the loop.")
|
125 | 151 | break
|
|
0 commit comments