Uploads a task to the database, timestamp will be added automatically. Parameters ----------- task_name : str The task name. script : str File name of the python script. hyper_parameters : dictionary The hyper parameters pa
(self, task_name=None, script=None, hyper_parameters=None, saved_result_keys=None, **kwargs)
| 538 | |
| 539 | # =========================== Task =================================== |
| 540 | def create_task(self, task_name=None, script=None, hyper_parameters=None, saved_result_keys=None, **kwargs): |
| 541 | """Uploads a task to the database, timestamp will be added automatically. |
| 542 | |
| 543 | Parameters |
| 544 | ----------- |
| 545 | task_name : str |
| 546 | The task name. |
| 547 | script : str |
| 548 | File name of the python script. |
| 549 | hyper_parameters : dictionary |
| 550 | The hyper parameters pass into the script. |
| 551 | saved_result_keys : list of str |
| 552 | The keys of the task results to keep in the database when the task finishes. |
| 553 | kwargs : other parameters |
| 554 | Users customized parameters such as description, version number. |
| 555 | |
| 556 | Examples |
| 557 | ----------- |
| 558 | Uploads a task |
| 559 | >>> db.create_task(task_name='mnist', script='example/tutorial_mnist_simple.py', description='simple tutorial') |
| 560 | |
| 561 | Finds and runs the latest task |
| 562 | >>> db.run_top_task(sort=[("time", pymongo.DESCENDING)]) |
| 563 | >>> db.run_top_task(sort=[("time", -1)]) |
| 564 | |
| 565 | Finds and runs the oldest task |
| 566 | >>> db.run_top_task(sort=[("time", pymongo.ASCENDING)]) |
| 567 | >>> db.run_top_task(sort=[("time", 1)]) |
| 568 | |
| 569 | """ |
| 570 | if not isinstance(task_name, str): # is None: |
| 571 | raise Exception("task_name should be string") |
| 572 | if not isinstance(script, str): # is None: |
| 573 | raise Exception("script should be string") |
| 574 | if hyper_parameters is None: |
| 575 | hyper_parameters = {} |
| 576 | if saved_result_keys is None: |
| 577 | saved_result_keys = [] |
| 578 | |
| 579 | self._fill_project_info(kwargs) |
| 580 | kwargs.update({'time': datetime.utcnow()}) |
| 581 | kwargs.update({'hyper_parameters': hyper_parameters}) |
| 582 | kwargs.update({'saved_result_keys': saved_result_keys}) |
| 583 | |
| 584 | _script = open(script, 'rb').read() |
| 585 | |
| 586 | kwargs.update({'status': 'pending', 'script': _script, 'result': {}}) |
| 587 | self.db.Task.insert_one(kwargs) |
| 588 | logging.info("[Database] Saved Task - task_name: {} script: {}".format(task_name, script)) |
| 589 | |
| 590 | def run_top_task(self, task_name=None, sort=None, **kwargs): |
| 591 | """Finds and runs a pending task that in the first of the sorting list. |
no test coverage detected