From a1054ae722a998ff5362f07af1e0c1af5248c53d Mon Sep 17 00:00:00 2001 From: Antonin Stefanutti Date: Thu, 9 Jan 2025 18:39:14 +0100 Subject: [PATCH] Use dictionary unpacking to pass trainer function arguments Signed-off-by: Antonin Stefanutti --- sdk_v2/kubeflow/training/utils/utils.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sdk_v2/kubeflow/training/utils/utils.py b/sdk_v2/kubeflow/training/utils/utils.py index cc21b96aa7..707dbf2f47 100644 --- a/sdk_v2/kubeflow/training/utils/utils.py +++ b/sdk_v2/kubeflow/training/utils/utils.py @@ -149,13 +149,17 @@ def get_args_using_train_func( # Wrap function code to execute it from the file. For example: # TODO (andreyvelich): Find a better way to run users' scripts. - # def train(parameters): + # def train(lr=0.001): # print('Start Training...') # train({'lr': 0.01}) if train_func_parameters is None: func_code = f"{func_code}\n{train_func.__name__}()\n" else: - func_code = f"{func_code}\n{train_func.__name__}({train_func_parameters})\n" + func_code = ( + f"{func_code}\n" + f"kwargs={train_func_parameters}\n" + f"{train_func.__name__}(**kwargs)\n" + ) # Prepare the template to execute script. # Currently, we override the file where the training function is defined.