mirror of
https://github.com/clearml/clearml
synced 2025-01-31 00:56:57 +00:00
Improve the hyper_parameter example
- Introduce sections - Add example for user properties - Add an example for hyperparameters with TaskParameters - Rename file to reflect the naming in the web app
This commit is contained in:
parent
e938f2800b
commit
537548c833
@ -1,4 +1,9 @@
|
||||
# ClearML - example code, ArgumentParser parameter logging and dictionary parameter logging
|
||||
# ClearML - example code for logging into "CONFIGURATION":
|
||||
# - ArgumentParser parameter logging
|
||||
# - user properties logging
|
||||
# - logging of hyperparameters via dictionary
|
||||
# - logging of hyperparameters via TaskParameters
|
||||
# - logging of configuration objects via TaskParameters
|
||||
#
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
@ -10,7 +15,24 @@ from enum import Enum
|
||||
|
||||
|
||||
from clearml import Task
|
||||
from clearml.task_parameters import TaskParameters, param, percent_param
|
||||
|
||||
# Connecting ClearML with the current process,
|
||||
# from here on everything is logged automatically
|
||||
task = Task.init(project_name='FirstTrial', task_name='first_trial')
|
||||
|
||||
|
||||
# -----------------------------------------------
|
||||
# Report user properties
|
||||
# -----------------------------------------------
|
||||
|
||||
task.set_user_properties(custom1='great', custom2=True)
|
||||
task.set_user_properties(custom3=1, custom4=2.0)
|
||||
|
||||
|
||||
# -----------------------------------------------
|
||||
# Report hyperparameters via dictionary
|
||||
# -----------------------------------------------
|
||||
|
||||
class StringEnumClass(Enum):
|
||||
A = 'a'
|
||||
@ -22,10 +44,6 @@ class IntEnumClass(Enum):
|
||||
D = 2
|
||||
|
||||
|
||||
# Connecting ClearML with the current process,
|
||||
# from here on everything is logged automatically
|
||||
task = Task.init(project_name='examples', task_name='Hyper-parameters example')
|
||||
|
||||
parameters = {
|
||||
'list': [1, 2, 3],
|
||||
'dict': {'a': 1, 'b': 2},
|
||||
@ -45,6 +63,36 @@ parameters['new_param'] = 'this is new'
|
||||
parameters['float'] = '9.9'
|
||||
print(parameters)
|
||||
|
||||
|
||||
# -----------------------------------------------
|
||||
# Report hyperparameters via TaskParameters
|
||||
# -----------------------------------------------
|
||||
|
||||
# Define a class that inherits from TaskParameters.
|
||||
# Note that TaskParameters inherits from _AttrsMeta;
|
||||
# because of `iterations` and `target_accuracy` do not need to be explicitly populated in an __init__ method.
|
||||
# Consult the documentation at https://www.attrs.org for more information.
|
||||
class MyTaskParameters(TaskParameters):
|
||||
|
||||
iterations = param(
|
||||
type=int,
|
||||
desc="Number of iterations to run",
|
||||
range=(0, 100000),
|
||||
)
|
||||
|
||||
target_accuracy = percent_param(
|
||||
desc="The target accuracy of the model",
|
||||
)
|
||||
|
||||
|
||||
my_task_parameters = MyTaskParameters(iterations=1000, target_accuracy=0.95)
|
||||
my_task_parameters = task.connect(my_task_parameters, name='from TaskParameters-like object')
|
||||
|
||||
|
||||
# -----------------------------------------------
|
||||
# Report configuration objects via dictionary
|
||||
# -----------------------------------------------
|
||||
|
||||
complex_nested_dict_configuration = {
|
||||
'list_of_dicts': [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}],
|
||||
'nested_dicts': {'nested': {'key': 'value', 'extra': 'value'}, 'number': 42},
|
Loading…
Reference in New Issue
Block a user