Недавно я взял курсор Andrew Ng на Coursera. После этого я перешел на Python и использовал Pandas, Numpy, Sklearn для реализации алгоритмов ML. Теперь во время серфинга я наткнулся на tensorFLow и нашел его довольно удивительным, и внедрил этот example, который принимает данные MNIST в качестве входных данных. Но я не уверен, зачем использовать такую библиотеку (TensorFlow)? Мы не проводим параллельных вычислений, так как весы, обновленные в предыдущую эпоху, используются в следующем. ??? Мне сложно найти причину для использования такой библиотеки?Зачем использовать TensorFlow для сверточных нейронных сетей
ответ
Есть несколько форм параллелизма, TensorFlow обеспечивает при обучении сверточной нейронной сети (и многих других моделей машинного обучения), в том числе:
Параллельности в рамках отдельных операций (например,
tf.nn.conv2d()
иtf.matmul()
) , Эти операции имеют эффективные параллельные реализации для многоядерных процессоров и графических процессоров, а TensorFlow использует эти реализации везде, где это возможно.Параллелизм между операциями. TensorFlow использует представление графика потока данных для вашей модели и где есть два узла, которые не связаны ориентированным путем в графе потока данных, они могут выполняться параллельно. Например, модель распознавания начального изображения имеет много параллельных ветвей в своем графике потока данных (см. Рисунок 3 в this paper), и TensorFlow может использовать это для одновременного запуска многих операций. В файле AlexNet paper также описывается, как использовать «параллелизм модели» для параллельного выполнения операций на разных частях модели, а TensorFlow поддерживает это с использованием того же механизма.
Параллелизм между репликами модели. TensorFlow также предназначен для distributed execution. Одна общая схема параллельного обучения («параллелизм данных») включает в себя очертание вашего набора данных через набор идентичных работников, выполнение одного и того же расчета обучения для каждого из этих работников для разных данных и обмен параметрами модели между рабочими.
Кроме того, библиотеки, такие как TensorFlow и Theano, могут выполнять различные оптимизации, когда они могут работать со всем графиком потока вашей модели. Например, они могут устранить общие подвыражения, избежать перекомпоновки постоянных значений и сгенерировать более эффективный скомпилированный код.
Возможно, вы сможете найти предварительно искушенные модели в sklearn или других библиотеках, но TensorFlow позволяет очень быстро итеративно настраивать модели машинного обучения. Он также поставляется с a ton of useful functions, который вам придется (и, вероятно, не должен) писать самостоятельно.
Для меня это меньше касается производительности (хотя они, безусловно, заботятся о производительности), а также о быстром изнашивании нейронных сетей.
- 1. Простой сверточных нейронных сетей код
- 2. сверточных нейронных сетей - Визуализация веса
- 3. Как выбраны фильтры для сверточных нейронных сетей
- 4. Почему предварительная подготовка для сверточных нейронных сетей
- 5. Случайные данные об урожае сверточных нейронных сетей
- 6. Как рассчитать количество параметров сверточных нейронных сетей?
- 7. сверточных нейронных сетей для мульти-классов классификации текстов
- 8. TensorFlow - классификация текста с использованием нейронных сетей
- 9. Построение поиска изображения двигателя с помощью сверточных нейронных сетей
- 10. Свернутые сети глубоких убеждений (CDBN) против сверточных нейронных сетей (CNN)
- 11. Визуализация фильтров в сверточных нейронных сетях
- 12. Theano vs Tensorflow для создания нейронных сетей для задач NLP
- 13. Фингерпринт нейронных сетей
- 14. Большие выходы для нейронных сетей
- 15. Прототипирование нейронных сетей
- 16. Зачем нужны весы нейронных сетей для случайных чисел?
- 17. Каков подход для создания повторяющихся нейронных сетей?
- 18. Преобразование вводов нейронных сетей
- 19. Проект нейронных сетей?
- 20. Проектирование нейронных сетей
- 21. Правильность нейронных сетей
- 22. Уникальность нейронных сетей
- 23. Репликация результатов с помощью различных искусственных нейронных сетей (ffnet, tensorflow)
- 24. Номера выходных нейронных нейронных сетей> 1
- 25. Сброс расходящихся нейронных сетей
- 26. обратного распространение в сверточных нейронных сетях
- 27. Доступ весов нейронных сетей и нейронные активации
- 28. Обучение нейронных сетей параллельно, теоретическая основа
- 29. нейронных сетей для распознавания текста фарси
- 30. Обратное распространение для обучения нейронных сетей
Библиотеки, такие как Tensorflow и Theano, не предназначены для параллелизма. Одно из основных преимуществ заключается в том, что они компилируют функции для быстрого кода C, и они обеспечивают быстрый способ их дифференциации. –