Skip to content

Commit c0ad675

Browse files
Logging lesson number at the begining of training (#5199)
1 parent 875feb0 commit c0ad675

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

ml-agents/mlagents/trainers/environment_parameter_manager.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,35 @@ def get_current_lesson_number(self) -> Dict[str, int]:
103103
)
104104
return result
105105

106+
def log_current_lesson(self, parameter_name: Optional[str] = None) -> None:
107+
"""
108+
Logs the current lesson number and sampler value of the parameter with name
109+
parameter_name. If no parameter_name is provided, the values and lesson
110+
numbers of all parameters will be displayed.
111+
"""
112+
if parameter_name is not None:
113+
settings = self._dict_settings[parameter_name]
114+
lesson_number = GlobalTrainingStatus.get_parameter_state(
115+
parameter_name, StatusType.LESSON_NUM
116+
)
117+
lesson_name = settings.curriculum[lesson_number].name
118+
lesson_value = settings.curriculum[lesson_number].value
119+
logger.info(
120+
f"Parameter '{parameter_name}' is in lesson '{lesson_name}' "
121+
f"and has value '{lesson_value}'."
122+
)
123+
else:
124+
for parameter_name, settings in self._dict_settings.items():
125+
lesson_number = GlobalTrainingStatus.get_parameter_state(
126+
parameter_name, StatusType.LESSON_NUM
127+
)
128+
lesson_name = settings.curriculum[lesson_number].name
129+
lesson_value = settings.curriculum[lesson_number].value
130+
logger.info(
131+
f"Parameter '{parameter_name}' is in lesson '{lesson_name}' "
132+
f"and has value '{lesson_value}'."
133+
)
134+
106135
def update_lessons(
107136
self,
108137
trainer_steps: Dict[str, int],
@@ -147,13 +176,7 @@ def update_lessons(
147176
GlobalTrainingStatus.set_parameter_state(
148177
param_name, StatusType.LESSON_NUM, next_lesson_num
149178
)
150-
new_lesson_name = settings.curriculum[next_lesson_num].name
151-
new_lesson_value = settings.curriculum[next_lesson_num].value
152-
153-
logger.info(
154-
f"Parameter '{param_name}' has been updated to {new_lesson_value}."
155-
+ f" Now in lesson '{new_lesson_name}'"
156-
)
179+
self.log_current_lesson(param_name)
157180
updated = True
158181
if lesson.completion_criteria.require_reset:
159182
must_reset = True

ml-agents/mlagents/trainers/trainer_controller.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ def start_learning(self, env_manager: EnvManager) -> None:
171171
try:
172172
# Initial reset
173173
self._reset_env(env_manager)
174+
self.param_manager.log_current_lesson()
174175
while self._not_done_training():
175176
n_steps = self.advance(env_manager)
176177
for _ in range(n_steps):

0 commit comments

Comments
 (0)