Я внедряю обученную модель в конечную точку ACI на Azure Машинное обучение, используя Python SDK. Я создал свой файл Score.py, но я бы хотел, чтобы этот файл вызывался с передаваемым аргументом (как и с обучающим файлом), который я могу интерпретировать с помощью argparse
. Тем не менее, я не вижу, как я могу передавать аргументы. Это код, который я должен создать среду InferenceConfig и который, очевидно, не работает. Должен ли я использовать дополнительные Docker шаги файла или около того?
from azureml.core.conda_dependencies import CondaDependencies
from azureml.core.environment import Environment
from azureml.core.model import InferenceConfig
env = Environment('my_hosted_environment')
env.python.conda_dependencies = CondaDependencies.create(
conda_packages=['scikit-learn'],
pip_packages=['azureml-defaults'])
scoring_script = 'score.py --model_name ' + model_name
inference_config = InferenceConfig(entry_script=scoring_script, environment=env)
Добавляем Score.py для справки о том, как я хотел бы использовать аргументы в этом сценарии:
#removed imports
import argparse
def init():
global model
parser = argparse.ArgumentParser(description="Load sklearn model")
parser.add_argument('--model_name', dest="model_name", required=True)
args, _ = parser.parse_known_args()
model_path = Model.get_model_path(model_name=args.model_name)
model = joblib.load(model_path)
def run(raw_data):
try:
data = json.loads(raw_data)['data']
data = np.array(data)
result = model.predict(data)
return result.tolist()
except Exception as e:
result = str(e)
return result
Интересно услышать ваши мысли