Несколько недель назад мы представили нашу библиотеку с открытым исходным кодом под названием TamnunML. Цель tamnun
- научиться легко использовать передовые методы машинного и глубокого обучения. На этой неделе мы представляем то, что, по нашему мнению, должно значительно упростить обучение модулей PyTorch и, таким образом, улучшить нашу способность предоставлять более продвинутые методы в TamnunML, TorchEstimator
!
PyTorch - очень популярный и мощный фреймворк для глубокого обучения. Для тех, кто с ним не знаком, это пакет для научных вычислений (например, numpy
) с упором на распределенные вычисления (на графических процессорах) и модели и алгоритмы, связанные с глубоким обучением. Используя тензоры и операции с тензорами, PyTorch может создавать сложные модели, такие как сверточные слои, повторяющиеся слои и другие. Кроме того, он имеет модуль Autograd, который автоматически вычисляет градиенты по всем связанным слоям (и тензорам) и очень полезен для алгоритмов оптимизации, таких как градиентный спуск.
Довольно просто создать нейронную сеть в PyTorch, вот очень простой пример полностью подключенной нейронной сети с одним скрытым слоем для задач классификации или регрессии:
class MyFullyConnectedNeuralNetwork(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(MyFullyConnectedNeuralNetwork, self).__init__() self.hidden_layer = nn.Linear(input_size, hidden_size) self.output_layer = nn.Linear(hidden_size, output_size) def forward(input): hidden_output = self.hidden_layer(input) out = self.output_layer(hidden_output) return out
Как видите, это довольно просто и само объяснимо. В дополнение к тензорам, слоям и Autograd PyTorch предоставляет инструменты для обучения этих моделей, включая оптимизаторы, функции потерь и многое другое.
PyTorch имеет множество отличных функций, но, что более важно, существует множество расширенных методов, реализованных сообществом с PyTorch. Такие методы, как трансформаторы, CNN, LSTM и многое другое. В tamnun
мы хотим использовать все эти возможности и сделать это с минимальными усилиями. С помощью объекта theTorchEstimator
мы можем делать именно это!
Здесь мы хотим показать очень простой пример, демонстрирующий его силу. Мы обучим простой nn.Linear
модуль PyTorch распознавать рукописные цифры. Чтобы использовать TorchEstimator
, все, что нам нужно сделать, это инициализировать наш модуль (который наследует класс nn.Module
от PyTorch) и просто выполнить fit().predict()
! Вот полный пример этого:
TorchEstimator
поддерживает задачи классификации и регрессии! сразу за желаемым task_type
в качестве параметра. Вы также можете найти это в этой записной книжке.
Класс TorchEstimator
- важный шаг на пути к внедрению гораздо большего количества моделей и методов глубокого обучения в TamnunML. Его гибкость позволяет комбинировать разные методы и создавать новые.
Заинтересованы в этом виде работы? Мы всегда ищем талантливых людей, чтобы присоединиться к нашей команде!