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
Hello Everyone! Does Anyone Use Pipelines? I Have The Issue With The Logger. Scenario:

Hello everyone!
Does anyone use pipelines? I have the issue with the logger. Scenario:
I have pipeline defined with set of pipeline.add_function_step at some stage I want to report table to the pipeline task and do it with PipelineController.get_logger().report_table and when I execute it I can not see any results However if I add a sleep time of 5 secs it seems to be enough to upload the data and I see the report.
Maybe someone knows better way to wait when upload is completed?

  
  
Posted one year ago
Votes Newest

Answers 11


Hi CostlyOstrich36

Here is the code example which does not work for me
` def process_data(inputs):
import pandas as pd
from clearml import PipelineController
_logger = PipelineController.get_logger()
df = pd.DataFrame.create(inputs)
_logger.report_table('Awesome', 'Details', table_plot=df)

pipeline = PipelineController(name='best_pipeline', project='test')
pipeline.add_function_step(name='process_data', function=process_data,
function_kwargs=dict(inputs=some_data),
cache_executed_step=True)
pipeline.add_function_step(name='next', function=next,
function_kwargs=(something="${process_data.ouput}")
pipeline.start_locally() `

  
  
Posted one year ago

Hi GrotesqueDog77 ,

Can you please add a small code snippet of this behavior? Is there a reason you're not reporting this from within the task itself or to the controller?

  
  
Posted one year ago

When I add sleep to the process_data it works if it was enough time to upload data

def process_data(inputs): import time import pandas as pd from clearml import PipelineController _logger = PipelineController.get_logger() df = pd.DataFrame.create(inputs) _logger.report_table('Awesome', 'Details', table_plot=df) time.sleep(10)

  
  
Posted one year ago

CostlyOstrich36 maybe you have any idea why this code might not work for me?

  
  
Posted one year ago

SmugDolphin23 , maybe you have an idea?

  
  
Posted one year ago

Hey GrotesqueDog77
A few things, first you can call _logger.flush() which should solve the issue you're seeing (We are working to add auto-flushing when tasks end 🙂 )
Second, I ran this code and it works for me without a sleep, does it also work for you?
` from clearml import PipelineController

def process_data(inputs):
import pandas as pd
from clearml import PipelineController
data = {'Name': ['Tom', 'nick', 'krish', 'jack'],
'Age': [20, 21, 19, 18]}
_logger = PipelineController.get_logger()
df = pd.DataFrame(data)
_logger.report_table('Awesome', 'Details', table_plot=df)

pipeline = PipelineController(name='erez', project='erez',version='0.1')
pipeline.add_function_step(name='process_data', function=process_data,
cache_executed_step=True)

pipeline.start_locally(run_pipeline_steps_locally=True) `What SDK vesrion are you using? I'm using V1.7.1. I also didn't pass the data as input so it might affect, but I'd be happy if you can give it a try

  
  
Posted one year ago

GrotesqueDog77 checking 🙂

  
  
Posted one year ago

AnxiousSeal95 here

  
  
Posted one year ago

I'm running 1.7.0 (latest docker available).
Your example did work for me, but I'm gonna try the flush() method now

  
  
Posted one year ago

Let me know, if this still doesn't work, I'll try to reproduce your issue 🙂

  
  
Posted one year ago

Yes it did work! Thank you!

  
  
Posted one year ago
574 Views
11 Answers
one year ago
one year ago
Tags
Similar posts