Введение:
Pytorch — замечательная библиотека для написания кода машинного обучения на производственном уровне и проектирования моделей глубокого обучения. Сегодня я собираюсь показать самый простой способ использования Pytorch для обучения модели глубокого обучения всего несколькими строками.
Для этого мы будем использовать вспомогательную библиотеку с именем msdlib. Его открытый исходный код, полностью бесплатный и доступный для установки через pip, очень эффективный и дает множество гибких возможностей для обучения моделей, прогнозирования, оценки и т. д.
Давайте посмотрим на код прямо.
Установка библиотек:
Сначала вам нужно открыть командную строку и установить эти две библиотеки для этого руководства.
pip install msdlib pip install scikit-learn
Вам также необходимо установить pytorch. Вы должны следовать инструкциям здесь https://pytorch.org/, чтобы установить pytorch на основе вашего оборудования.
Импорт библиотек
# torchModel() binary classification example import pandas as pd from sklearn.datasets import load_breast_cancer import torch import os from msdlib import msd from msdlib import mlutils savepath = 'binary-classification_torchModel'
Здесь мы используем набор данных о раке молочной железы, который содержит данные бинарной классификации. Мы уже загрузили необходимые библиотеки. Теперь мы подготовим набор данных для запуска обучения и оценки.
Подготовка данных:
# Loading the data and separating data and label source_data = load_breast_cancer() feature_names = source_data[‘feature_names’].copy() data = pd.DataFrame(source_data[‘data’], columns=feature_names) label = pd.Series(source_data[‘target’], name=source_data[‘target_names’][1])
Стандартизация данных и разделение на обучение, проверку и тестирование:
# Standardizing numerical data data = msd.standardize(data) # Splitting data set into train, validation and test splitter = msd.SplitDataset(data, label, test_ratio=.1) outdata = splitter.random_split(val_ratio=.1)
Модель сборки:
# defining layers inside a list layers = mlutils.define_layers( input_units=data.shape[1], output_units=1, units_factors=[100, 100, 100, 100, 100, 100], dropout_rate=.2, model_type='binary-classifier', actual_units=True, activation=torch.nn.ReLU(), final_activation=torch.nn.Sigmoid() ) # building model tmodel = mlutils.torchModel( layers=layers, model_type='binary-classifier', tensorboard_path='runs', savepath=savepath, batch_size=32, epoch=80, learning_rate=.0001, lr_reduce=.995)
Обучение модели:
# Training Pytorch model tmodel.fit(outdata['train']['data'], outdata['train']['label'])
Оценка модели:
# Evaluating the model's performance result, all_results = tmodel.evaluate( data_sets=[outdata['train']['data'], outdata['test']['data']], label_sets=[outdata['train']['label'], outdata['test']['label']], set_names=['Train', 'Test'], savepath=savepath) print('classification score:\n', result) # scores for classification print('test scores:\n', all_results['Test'][0]) # confusion matrix for classification print('test data confusion matrix:\n', all_results['Test'][1].T)
Для получения дополнительной информации и документации по msdlib посетите здесь: https://msdlib.readthedocs.io/en/latest/index.html