# Execution
# execute
machinable.execute(experiment: Union[machinable.experiment.experiment.Experiment, Any], storage: Union[dict, str] = None, engine: Union[machinable.engine.engine.Engine, str, dict, NoneType] = None, index: Union[machinable.index.index.Index, str, dict, NoneType] = None, project: Union[machinable.project.project.Project, Callable, str, dict] = None, seed: Union[int, NoneType, str] = None) -> machinable.execution.execution.Execution
Executes a machinable experiment
Schedules the experiment for execution.
# Arguments
- experiment: machinable.Experiment, specifies the execution experiment. For convenience, it can also be a string or tuple that
defines the node argument, e.g.
ml.execute('my_model')
orml.execute((('my_model', {'param': 1}),))
- storage:
String
, URL of the write location for the results. If unspecified, the result write will be non-persistent. Remote locations like SSH or S3 are supported via pyFilesystem URLs (opens new window) - engine: machinable.Engine|Dict|
String
|None
, engine that handles execution, e.g. 'local' or 'ray' etc. - index: machinable.Index|Dict|
String
|None
, index that tracks this execution - project: Project|Dict|
String
|None
, project used, defaults to current working directory - seed:
Integer
|String
|None
, determines the global random seed. IfNone
, a random seed will be generated. To re-use the same random seed of a previous execution, you can pass in its submission ID
# Example
import machinable as ml
ml.execute(ml.Experiment().components('iris', 'random_forest'), 's3://bucket', seed=42)
# Functional API
You can use this method as a function decorator to implement a custom execution. The decorated function is invoked with the configuration as well as an store object, for example:
@ml.execute
def custom_execute(component, components, store):
store.log.info('Custom training with learning_rate=' + str(component.config.lr))
custom_execute(experiment, storage, seed) # invokes the decorated function
# Using the Execution
This method forms a wrapper around machinable.Execution. You can instantiate machinable.Executon directly with the same argument to benefit from more fine grained execution APIs like asynchronous executon etc.
# Returns
The execution returns an machinable.Execution object that contains the result of the execution
# Execution
machinable.Execution(experiment: Union[machinable.experiment.experiment.Experiment, Callable, Any, NoneType] = <object object at 0x7f152a427f90>, storage: Union[dict, str, NoneType] = None, engine: Union[machinable.engine.engine.Engine, str, dict, NoneType] = None, index: Union[machinable.index.index.Index, str, dict, NoneType] = None, project: Union[machinable.project.project.Project, Callable, str, dict, NoneType] = None, seed: Union[int, str, NoneType] = None)
# export
export(self, path=None, overwrite=False)
Exports the execution
Converts the execution into a plain Python project that can be executed without machinable.
WARNING
This feature may not work reliably in all circumstances and project use cases
# Arguments
- path:
String
, directory where exported execution will be stored. IfNone
defaults to 'exports' in the current working directory - overwrite:
Boolean
, whether to overwrite an existing export.
← Component Experiment →