Выбор между TensorFlow или Theano в качестве бэкэнда для Keras

20

Keras поддерживает как TensorFlow, так и Theano в качестве бэкенда: каковы плюсы / минусы выбора одного против другого, кроме того факта, что в настоящее время не все операции реализованы с бэкэндом TensorFlow?

Франк Дернонкур
источник
4
Возвращаясь к этому. Я думаю, что я изменю свое мнение сегодня: D
Dawny33
@ Dawny33 спасибо, я буду следить за обновленным ответом :-)
Франк Дернонкур

Ответы:

9

Если бы мне дали выбор, я бы пошел с Теано .

Причины:

  • Современные реализации RNN и API , которыми, к сожалению, TensorFlow не обладает, и предстоит долгий путь . И в области, где RNN's - модная ярость, у Theano есть большое преимущество.
  • Очень широкий спектр реализаций . TensorFlow имеет долгий путь, чтобы наверстать упущенное. Многие современные модели ML были сделаны с помощью Theano, поэтому это нечто вроде стандарта, когда речь заходит о нейронных сетях.
  • Оптимизированные и улучшен цикл : сканирование Theano является прекрасным способом для зацикливания в нейронных сетях, что делает использование удивительного Map-Reduce рамки. Но я уверен, что TensorFlow улучшит это, поскольку его создатель Джефф Дин - папа Map Reduce. Однако на данный момент; это теано
  • Огромное преимущество, когда дело доходит до видеоаналитики.

Однако TensorFlow поддерживает интерфейсы cpp и Python, что может быть преимуществом сообщества cpp. Но когда дело доходит до ML и продуктов науки о данных, Python был стандартом, поэтому он не будет огромным преимуществом IMO.

Но развертывание модели и простота использования в производстве - вот где TensorFlow имеет реальное преимущество. Поскольку он использует Eigen для улучшенного и легкого развертывания, он будет дорогим для инженеров. Если он станет совместимым с Windows, то вы увидите огромную миграцию. Но я привык к накладным расходам Python, я могу подождать, пока они не станут более отточенными.

Итак, Теано пока. Я могу с радостью ждать, пока TensorFlow наверстает упущенное.

Если вы развертываете нейронные сети простой и средней сложности, используйте Tensorflow. Если глубокое обучение, то Теано.

Dawny33
источник
1
Учитывая улучшения в TensorFlow за последние 1,5 года, у вас есть другое мнение?
Seanny123
1
@ Seanny123 Конечно. Не было времени, чтобы записать это как ответ: D. Скоро напишу :) [Несвязанный PS: Checkout Pytorch тоже]
Dawny33
8

2017-09-28 было объявлено, что Theano будет прекращен:

С https://groups.google.com/forum/#!topic/theano-users/7Poq8BZutbY (Йошуа Бенжио):

После почти десяти лет разработки мы с сожалением объявляем, что покончили с разработкой Theano после выпуска 1.0, выход которого ожидается в ближайшие несколько недель. Мы продолжим минимальное техническое обслуживание, чтобы оно продолжало работать в течение одного года, но мы прекратим активно внедрять новые функции. После этого Theano будет по-прежнему доступен в соответствии с нашим обязательством в отношении программного обеспечения с открытым исходным кодом, но MILA не обязуется тратить время на обслуживание или поддержку после этого срока.

Так что TensorFlow - лучший вариант.

Франк Дернонкур
источник