Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Answered
Hi, I Have A Case When I Want To Clone Tasks And Set Some Parameters For Them. I Noticed, That I Can'T Pass Numbers, Only Strings Are Possible There. When I'M Trying To Pass A Number, The Default Value Is Not Overriden. Do You Know Maybe If Numbers Can Be

Hi, I have a case when I want to clone tasks and set some parameters for them. I noticed, that I can't pass numbers, only strings are possible there. When I'm trying to pass a number, the default value is not overriden. Do you know maybe if numbers can be passed there in some way?

` cloned = Task.clone(
...
)

s = cloned.get_parameters_as_dict()

does not work

s['Function']['random_number'] = random.random()

s['Function']['random_number'] = f'{random.random()}'
cloned.set_parameters_as_dict(s) `

  
  
Posted 2 years ago
Votes Newest

Answers 8


version 1.8.1
No, there are no error messages. The behaviour is just very strange (or even incorrect)

Suppose that this is a task that is cloned:
base_task = replacement_task.create_function_task( func=some_func, # type: Callable func_name=f'func_id_run_me_remotely_nr', # type:Optional[str] task_name=f'a func task', # type:Optional[str] # everything below will be passed directly to our function as arguments some_argument=message, some_argument_2=message, random_number=2 )
When in the code above I do for example
s['Function']['random_number'] = random.random()
Then in some_func
argument random_number is 2 (instead of random number).

When I pass a string, then in some_func I'll parse it to float again - it works

  
  
Posted 2 years ago

RoundMosquito25 you might need to use cast=True when you get the parameters.
See this snippet:
` from clearml import Task

t = Task.init()
params = {}
params["Function"] = {}
params["Function"]["number"] = 123
t.set_parameters_as_dict(params)
t.close()

cloned = Task.clone(t.id)
s = cloned.get_parameters_as_dict(cast=True)
s["Function"]["number"] = 321
cloned.set_parameters_as_dict(s)
print(type(cloned.get_parameters_as_dict(cast=True)["Function"]["number"])) # will print 'int' `

  
  
Posted 2 years ago

Hi RoundMosquito25 ! What clearml version are you using? Do you get any error messages when you are setting floats instead of strings?

  
  
Posted 2 years ago

I'll try that...

  
  
Posted 2 years ago

in both cases

  
  
Posted 2 years ago

After you do s['Function']['random_number'] = random.random() you still need to call set_parameters_as_dict(s)

  
  
Posted 2 years ago

yes, sure, I'm doing that

  
  
Posted 2 years ago

So seems like this dictionary works with strings

  
  
Posted 2 years ago
1K Views
8 Answers
2 years ago
one year ago
Tags