Closed owlengineer closed 4 years ago
Pytorch - современная библиотека машинного обучения для языка Python с открытым исходным кодом, созданная на базе Torch. Используется для решения различных задач: компьютерное зрение, обработка естественного языка. Сайт - https://pytorch.org/ Обзорная статься на хабре Примеры:
Оценка: современный, удобный, не самый низкоуровневый, что повышает порог вхождения. Есть как предобученные модели, так и возможность самостоятельно конструировать архитектуру сети в виде класса, что довольно удобно. Популярный - в сети куча примеров, готовых кусков кода, статей по решению тех или иных задач. Синтаксис простой, довольно понятный и удобный.
ThensorFlow – открытая программная библиотека для машинного обучения. Основной API реализован на Python.
Пример: https://www.tensorflow.org/tutorials/keras/classification
Оценка: библиотека включает в себя реализацию множества различных алгоритмов для решения задач машинного обучения. Изначально разрабатывалась как инструмент для создания и обучения нейросетей с целью нахождения и классификации образов. Продолжает развиваться, подходит как для решения небольших задач, так и для создания больших моделей. Для работы может использоваться удобный API Keras.
Keras – высокоуровневая среда разработки нейронных сетей, написанная на Python. Работает поверх TensorFlow, CNTK и Theano. Была разработана для проведения быстрых экспериментов и исследований, нацелена на оперативную работу с нейросетями.
Сайт: https://keras.io/
Пример: https://keras.io/getting-started/sequential-model-guide/
Оценка: предоставляет удобный и понятный API для работы с нейросетями. Основными принципами при разработке среды являлись компактность, модульность и расширяемость, поэтому позволяет без особых усилий создать и использовать простые модели, однако при работе над большими проектами могут возникнуть трудности (например, потеря производительности).
PyTorch – библиотека машинного обучения на языке Python, использует для вычислений возможности графического процессора.
Сайт: https://pytorch.org/
Пример: https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html - содержит краткое описание библиотеки, а также примеры реализации нейронных сетей и решения задачи классификации.
Оценка: имеет вокруг себя экосистему с различными библиотеками и инструментами для работы, а также уже готовые модели. PyTorch нацелен на простоту использования, также является достаточно гибким для решения различных задач.
Keras - является надстройкой над TensorFlow, а в последних версиях и вовсе стал ее частью. Значимым плюсом Keras'а является простота создания моделей, из-за чего предоставляется возможность попробовать различные инструменты для решения задачи. Примеры:
Оценка: Keras не подойдет в тех задачах, если вам нужны какие-то сложные вещи, вроде нестандартного слоя или распараллеливания кода на несколько GPU, тогда лучше использовать TenserFlow.
Keras - python надстройка над TensorFlow для обучения глубоких нейронных сетей. Часто используют как для прототипирования моделей, так и для state-of-the-art исследований и промышленных задач.
PyTorch - python фреймворк для машинного обучения. Универсальная библиотека, для классификации изображений в том числе.
Сайт: https://pytorch.org/
Примеры: Оф. гайды Гайд по классификации на CIFAR-10 Гайд по классификации на MNIST
Оценка: широкий набор дополнительных инструментов, притом официально поддерживамых, также удобный и понятный API для описания собственных а также подгрузки уже обкатанных моделей. За счёт простоты - большое коммьюнити, а это == куча гайдов, видеоуроков, готовых решений и относительно низкий порог вхождения. Есть удобная поддержка CUDA, параллельных вычислений на GPU - существенный плюс при больших датасетах и моделях.
Примечание: хотел включить сюда Caffe, это фреймворк специализирующися именно на классификации изображений, который работает для этой задачи лучше чем PyTorch и Keras. Однако у него довольно сложный и специфический API и малое community.
Каждый из нас пишет к этому issue комментарий в котором форматированным markdown-ом делает список фреймворков для обучения нейронных сетей, которые лучше всего подходят под решение задач классификации изображений.
Все помним, что лучше качество, поэтому не стоит сюда указывать изначально не очень подходящие фреймворки. Делаем выборку из лучших найденных
ВЫБРАН PYTORCH
Формат ревью примерно такой:
Тулза1 - краткое описание ссылка на сайт\исходники сслыка на пример(ы) использования
Оценка: насколько по вашему мнению этот фреймворк подходит, почему. Какой порог вхождения и т.п
Тулза2 - краткое описание ссылка на сайт\исходники сслыка на пример(ы) использования
Оценка: насколько по вашему мнению этот фреймворк подходит, почему. Какой порог вхождения
...
Оценка: насколько по вашему мнению этот фреймворк подходит, почему. Какой порог вхождения