В чем разница между Keras и tf.keras в TensorFlow 1. 1+?

Теперь, когда TensorFlow 1.1 поддерживает Keras API в tf.contrib.keras, который я должен использовать, если я намерен использовать Keras с TF-сервером?

Является ли версия tf.contrib.keras чем-то иным, чем обычным распределением Keras? (Особое внимание уделено оптимизации внутренних структур данных). Есть ли какая-либо польза в плане использования Keras и TensorFlow Core вместе, если я использую один или другой?

Или tf.contrib.keras просто копия той же кодовой базы, что и Keras, но под другим пространством имен?

Ответы

Ответ 1

  

Если будет два репозитория github, как бы вы синхронизировали     запросы в tf.keras и этот репозиторий? Будет ли кто-нибудь     применяя изменения в одной репозитории к другой?

  

Кодовые базы будут разными, поэтому не будет необходимости реплицировать тянуть запросы. Для изменений API вы отправляете PR в спецификацию API и изменения спецификации API будут реплицированы во всех базы кода.

https://github.com/fchollet/keras/issues/5299#issuecomment-278166426

Ответ 2

tf.keras (ранее tf.contrib.keras) - это реализация keras 2, реализованная исключительно с /for tenorflow. Он размещен в репозитории тензорного потока и имеет базу кода, отличную от официальной репо (последний коммит в ветке tf-keras датируется май 2017 года).

Как правило, если ваш код использует какой-либо специфичный для тензора код, скажем что-нибудь в tf.data.* Для предоставления входных данных или tf.summary.* Для визуализации в тензорной доске, проще использовать tf.keras. (Некоторые могут даже рекомендовать не использовать эталонную реализацию Keras с TF из-за случайных проблем, которые возникают с этим инструментарием).

С другой стороны, если вы планируете активно поддерживать независимый от фреймворка код, использование собственного пакета keras - ваш единственный выбор.

Если вас не очень интересует независимость от фреймворка, но вы не используете код, специфичный для тензорного потока, я бы, вероятно, посоветовал перейти к tf.keras и начать использовать код, специфичный для тензорного потока, особенно. tf.data который, на мой взгляд, tf.data правила игры.

Ответ 3

Keras лучше всего понимать как спецификацию API, а не как конкретную кодовую базу. Фактически, в будущем будут две отдельные реализации спецификации Keras: внутренняя TensorFlow, доступная как tf.keras, написанная на чистом TensorFlow и глубоко совместимая со всеми функциями TensorFlow, и внешняя мультибэкэнд-поддержка, поддерживающая как Theano, так и TensorFlow (и, вероятно, еще больше бэкэндов в будущем).

https://blog.keras.io/introducing-keras-2.html

Ответ 4

Недавний Франсуа Шоле написал в Твиттере и предлагает использовать tf.keras.

Мы рекомендуем вам изменить код Keras на tf.keras.

И Theano, и CNTK находятся в стадии разработки. Между тем, как Керас бэкэнды, они составляют менее 4% от использования Keras. Остальные 96% пользователи (из которых более половины уже есть на tf.keras) лучше подается с тф.керас.

Разработка Keras будет направлена на развитие tf.keras.

Важно отметить, что мы постараемся начать разработку tf.keras в своем собственном автономный репозиторий GitHub в keras-team/keras, чтобы сделать это намного легче для сторонних людей внести свой вклад.