I have 100 experiments and I have to log them and update those experiments every 5 minutes
This code gives me the graph that I displayed above
logger.report_scalar("loss", "train", iteration=0, value=100)
logger.report_scalar("loss", "test", iteration=0, value=200)
main will initialize parent task and then my multiprocessing occurs which call combined function with parameters as project_name and exp_name
Hi AgitatedDove14 , I wanted to ask you something. Is it possible that we can talk over voice somewhere so that I can explain my problem better?
like if u see in above image my project name is abcd18 and under that there are experiments Experiment1, Experiment2 etc.
You can do:task = Task.get_task(task_id='uuid_of_experiment')
task.get_logger().report_scalar(...)
Now the only question is who will create the initial Task, so that the others can report to it. Do you have like a "master" process ?
def combined(path,exp_name,project_name):
temp = Task.create(task_name="exp_name")
logger = temp.current_logger()
logger.report_scalar()
def main():
task=Task.init(project_name="test")
[pool.apply_async(combined, args = (row['Path'], row['exp_name'], row['project_name'])) for index,row in temp_df.iterrows()]
scheduler = BlockingScheduler()
scheduler.add_job(main, 'interval', seconds=60, max_instances=3)
scheduler.start()
and under that there will be three graphs with title as train test and loss
Can my request be made as new feature so that we can tag same type of graphs under one main tag
okay, Thanks AgitatedDove14 for the help.
so I want loss should be my main title and I want two different graphs of train and test loss under that loss
logger.report_scalar(title="loss", series="train", iteration=0, value=100)
logger.report_scalar(title="loss", series="test", iteration=0, value=200)
and it should log it into the same task and same project
then if there are 10 experiments then I have to call Task.create() for those 10 experiments
so, like if validation loss appears then there will be three sub-tags under one main tag loss
I have to create a main task for example named as main
like in the sidebar there should be a title called "loss" and under that two different plots should be there named as "train_loss" and "test_loss"
It will not create another 100 tasks, they will all use the main Task. Think of it as they "inherit" it from the main process. If the main process never created a task (i.e. no call to Tasl.init) then they will create their own tasks (i.e. each one will create its own task and you will end up with 100 tasks)
so what I have done is rather than reading sequentially I am reading those experiments through multiprocessing and for each experiment I am creating new task with specified project_name and task_name
now after 1st iteration is completed then after 5 minutes my script runs automatically and then again it logs into trains server
each subprocess logs one experiment as task
Can my request be made as new feature so that we can tag same type of graphs under one main tag
Sure, open a Git Issue :)
my scheduler will be running every 60 seconds and calling main function
MotionlessSeagull22 you cannot have two graphs with the same title, the left side panel presents graph titles. That means that you cannot have a title=loss series=train & title=loss series=test on two diff graphs, they will always be displayed on the same graph.
That said, when comparing experiments, all graph pairs (i.e. title+series) will be displayed as a single graph, where the diff series are the experiments.
See on line 212 I am calling one function "combined" with some arguments