Unanswered
Hey, Just A Quick Question. I'M Trying To Create A Pipeline And In One Step I'M Passing A Model From The Previous Step. Is It Possible To Get Model By Name And Not By Index. More Concretely I Can Do
@<1531445337942659072:profile|OddCentipede48> Looks like this is indeed not supported. What you could do is return the ID of the task that returns the models, then use Task.get_task
and get the model from there. Here is an example:
from clearml import PipelineController
def step_one():
from clearml import Task
from clearml.binding.frameworks import WeightsFileHandler
from clearml.model import Framework
WeightsFileHandler.create_output_model(
"obj", "filename", Framework.xgboost, Task.current_task(), singlefile=True, model_name="obj"
)
def step_two(task_id):
from clearml import Task
task = Task.get_task(task_id)
print(task.models.output["filename"].url)
if __name__ == "__main__":
pipe = PipelineController(
project="examples",
name="Pipeline demo",
version="1.1",
add_pipeline_tags=False,
)
pipe.set_default_execution_queue("Eugene")
pipe.add_function_step(
name="step_one",
function=step_one,
)
pipe.add_function_step(
name="step_two",
function=step_two,
function_kwargs={"task_id": "${step_one.id}"}
)
pipe.start_locally(run_pipeline_steps_locally=True)
178 Views
0
Answers
one year ago
one year ago