def my_job(): # load MLRUN runtime context (will be set by the runtime framework e.g. KubeFlow) context = get_or_create_ctx('train') # get parameters from the runtime context (or use defaults) p1 = context.get_param('p1', 1) p2 = context.get_param('p2', 'a-string') # access input metadata, values, files, and secrets (passwords) print(f'Run: {context.name} (uid={context.uid})') print(f'Params: p1={p1}, p2={p2}') print('accesskey = {}'.format(context.get_secret('ACCESS_KEY'))) print('file\n{}\n'.format(context.get_input('infile.txt', 'infile.txt').get())) # Run some useful code e.g. ML training, data prep, etc. # log scalar result values (job result metrics) context.log_result('accuracy', p1 * 2) context.log_result('loss', p1 * 3) context.set_label('framework', 'sklearn') # log various types of artifacts (file, web page, table), will be versioned and visible in the UI context.log_artifact('model', body=b'abc is 123', target_path='model.txt', labels={'framework': 'xgboost'}) context.log_artifact('html_result', body=b'<b> Some HTML <b>', target_path='result.html', viewer='web-app') context.log_artifact(TableArtifact('dataset', '1,2,3\n4,5,6\n', viewer='table', header=['A', 'B', 'C']), target_path='dataset.csv') # create a chart output (will show in the pipelines UI) chart = ChartArtifact('chart.html') chart.labels = {'type': 'roc'} chart.header = ['Epoch', 'Accuracy', 'Loss'] for i in range(1, 8): chart.add_row([i, i/20+0.75, 0.30-i/20]) context.log_artifact(chart)
def my_job(context, p1=1, p2='x'): # load MLRUN runtime context (will be set by the runtime framework e.g. KubeFlow) # get parameters from the runtime context (or use defaults) # access input metadata, values, files, and secrets (passwords) print(f'Run: {context.name} (uid={context.uid})') print(f'Params: p1={p1}, p2={p2}') print('accesskey = {}'.format(context.get_secret('ACCESS_KEY'))) print('file\n{}\n'.format( context.get_input('infile.txt', 'infile.txt').get())) # Run some useful code e.g. ML training, data prep, etc. # log scalar result values (job result metrics) context.log_result('accuracy', p1 * 2) context.log_result('loss', p1 * 3) context.set_label('framework', 'sklearn') # log various types of artifacts (file, web page, table), will be versioned and visible in the UI context.log_artifact('model', body=b'abc is 123', local_path='model.txt', labels={'framework': 'xgboost'}) context.log_artifact('html_result', body=b'<b> Some HTML <b>', local_path='result.html') context.log_artifact(TableArtifact('dataset', '1,2,3\n4,5,6\n', visible=True, header=['A', 'B', 'C']), local_path='dataset.csv') # create a chart output (will show in the pipelines UI) chart = ChartArtifact('chart') chart.labels = {'type': 'roc'} chart.header = ['Epoch', 'Accuracy', 'Loss'] for i in range(1, 8): chart.add_row([i, i / 20 + 0.75, 0.30 - i / 20]) context.log_artifact(chart) raw_data = { 'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'], 'age': [42, 52, 36, 24, 73], 'testScore': [25, 94, 57, 62, 70] } df = pd.DataFrame(raw_data, columns=['first_name', 'last_name', 'age', 'testScore']) context.log_dataset('mydf', df=df, stats=True) #if __name__ == "__main__": # context = get_or_create_ctx('train') # p1 = context.get_param('p1', 1) # p2 = context.get_param('p2', 'a-string') # my_job(context, p1, p2)
def my_job(context, p1=1, p2="x"): # load MLRUN runtime context (will be set by the runtime framework e.g. KubeFlow) # get parameters from the runtime context (or use defaults) # access input metadata, values, files, and secrets (passwords) print(f"Run: {context.name} (uid={context.uid})") print(f"Params: p1={p1}, p2={p2}") access_key = context.get_secret("ACCESS_KEY") print(f"Access key = {access_key}") input_file = context.get_input("infile.txt", "infile.txt").get() print(f"File\n{input_file}\n") # Run some useful code e.g. ML training, data prep, etc. # log scalar result values (job result metrics) context.log_result("accuracy", p1 * 2) context.log_result("loss", p1 * 3) context.set_label("framework", "sklearn") # log various types of artifacts (file, web page, table), will be versioned and visible in the UI context.log_artifact( "model", body=b"abc is 123", local_path="model.txt", labels={"framework": "xgboost"}, ) context.log_artifact("html_result", body=b"<b> Some HTML <b>", local_path="result.html") # create a chart output (will show in the pipelines UI) chart = ChartArtifact("chart") chart.labels = {"type": "roc"} chart.header = ["Epoch", "Accuracy", "Loss"] for i in range(1, 8): chart.add_row([i, i / 20 + 0.75, 0.30 - i / 20]) context.log_artifact(chart) raw_data = { "first_name": ["Jason", "Molly", "Tina", "Jake", "Amy"], "last_name": ["Miller", "Jacobson", "Ali", "Milner", "Cooze"], "age": [42, 52, 36, 24, 73], "testScore": [25, 94, 57, 62, 70], } df = pd.DataFrame(raw_data, columns=["first_name", "last_name", "age", "testScore"]) context.log_dataset("mydf", df=df, stats=True)