В чем разница между 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, чтобы сделать это намного легче для сторонних людей внести свой вклад.