Чтобы запустить сценарий обучения, вы можете использовать ScriptRunConfig для запуска эксперимента на основе сценария, который обучает модель машинного обучения.
Написание скрипта для обучения модели
При использовании эксперимента для обучения модели ваш сценарий должен сохранять обученную модель в выходной папке. Например, следующий скрипт обучает модель с помощью Scikit-Learn и сохраняет ее в выходной папке с помощью пакета joblib.
#импортировать библиотеки
из azureml.core import Выполнить
импортировать панд как pd
импортировать numpy как np
импортировать joblib из sklearn.model_selection
импортировать train_test_split из sklearn.linear_model
импорт логистической регрессии
# Получить контекст запуска эксперимента
запустить = запустить.get_context()
# Подготовить набор данных
диабет = pd.read_csv(‘data.csv’)
X, y = диабет[['Признак1','Признак2','Признак3']].значения, диабет['Ярлык'].значения
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,30)
# Обучение модели логистической регрессии
рег = 0,1
модель = Логистическая регрессия (C = 1 / reg, решатель = «liblinear»). Подходит (X_train, y_train)
# расчет точности
y_hat = model.predict(X_test)
акк = np.average (y_hat == y_test)
run.log('Точность', np.float(acc))
# Сохраните обученную модель
os.makedirs('выводы', exists_ok=True)
joblib.dump(значение=модель, имя файла='outputs/model.pkl')
выполнить.полный()
Этот скрипт следует сохранить как training_script.py в папке с именем training_folder. Поскольку скрипт включает код для загрузки обучающих данных из data.csv, этот файл также следует сохранить в папке.
Запуск скрипта в качестве эксперимента
Чтобы запустить сценарий, создайте ScriptRunConfig, ссылающийся на папку и файл сценария. Как правило, вам также необходимо определить среду Python (Conda), которая включает все пакеты, требуемые сценарием. В этом примере сценарий использует Scikit-Learn, поэтому вы должны создать среду, которая включает это. Сценарий также использует Машинное обучение Azure для регистрации метрик, поэтому не забудьте включить в среду пакет azureml-defaults.
#импортировать библиотеки
из azureml.core import Experiment, ScriptRunConfig, Environment
из azureml.core.conda_dependencies импортировать CondaDependencies
# Создайте среду Python для эксперимента
sklearn_env = Окружающая среда («sklearn-env»)
# Убедитесь, что необходимые пакеты установлены
пакеты = CondaDependencies.create(conda_packages=[‘scikit-learn’,’pip’], pip_packages=[‘azureml-defaults’])
sklearn_env.python.conda_dependencies = пакеты
# Создать конфигурацию скрипта
script_config = ScriptRunConfig (исходный_каталог = «папка_обучения», скрипт = «обучение.py», среда = sklearn_env)
# Отправить эксперимент
эксперимент = эксперимент (рабочая область = ws, имя = «обучающий эксперимент»)
запустить = Experiment.submit(config=script_config)
run.wait_for_completion()
Регистрация файлов модели
После завершения эксперимента вы можете использовать метод объектов выполнения get_file_names для получения списка созданных файлов. Стандартная практика заключается в том, что сценарии, которые обучают модели, сохраняют их в папке outputs запуска.
# Список файлов, сгенерированных экспериментом для файла в
run.get_file_names(): печать (файл)
# Загрузить именованный файл
run.download_file(name='outputs/model.pkl', output_file_path='model.pkl')
Регистрация модели позволяет отслеживать несколько версий модели и извлекать модели для выведения (прогнозирования значений меток на основе новых данных). При регистрации модели вы можете указать имя, описание, теги, фреймворк (например, Scikit-Learn или PyTorch), версию фреймворка, пользовательские свойства и другие полезные метаданные.
из модели импорта azureml.core
model = Model.register(workspace=ws, model_name='classification_model', model_path='model.pkl', # локальный путь description='Модель классификации', tags={'data-format': 'CSV'}, model_framework =Model.Framework.SCIKITLEARN, model_framework_version='0.20.3')
Просмотр зарегистрированных моделей
Вы можете просмотреть зарегистрированные модели в студии машинного обучения Azure. Вы также можете использовать объект модели для получения сведений о зарегистрированных моделях, как это
из модели импорта azureml.core
для модели в Model.list(ws):
# Получить название модели и автоматически сгенерированную версию
print(model.name, ‘версия:’, model.version)