import os import shutil from azureml.core import ScriptRunConfig def run_remote_inference( test_experiment, compute_target, train_run, test_dataset, target_column_name, inference_folder="./forecast", ): # Create local directory to copy the model.pkl and forecsting_script.py files into. # These files will be uploaded to and executed on the compute instance. os.makedirs(inference_folder, exist_ok=True) shutil.copy("forecasting_script.py", inference_folder) train_run.download_file( "outputs/model.pkl", os.path.join(inference_folder, "model.pkl") ) inference_env = train_run.get_environment() config = ScriptRunConfig( source_directory=inference_folder, script="forecasting_script.py", arguments=[ "--target_column_name", target_column_name, "--test_dataset", test_dataset.as_named_input(test_dataset.name), ], compute_target=compute_target, environment=inference_env, ) run = test_experiment.submit( config, tags={ "training_run_id": train_run.id, "run_algorithm": train_run.properties["run_algorithm"], "valid_score": train_run.properties["score"], "primary_metric": train_run.properties["primary_metric"], }, ) run.log("run_algorithm", run.tags["run_algorithm"]) return run