Импортировать керас напрямую или через TensorFlow?Должен ли я удалить один из них? - PullRequest
2 голосов
/ 13 марта 2019

У меня есть несколько рабочих источников Python3, полученных из Интернета, где первоначальный импорт Keras direct , например так:

from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
...

В документации TensorFlow вместо этого я вижуследующая косвенная форма:

import tensorflow as tf
from tensorflow.keras import layers
...

Мне кажется, они соответственно означают, что можно использовать Keras, не зная, что TensorFlow позади, и что Keras являетсяпредоставляется (снова?) как часть TensorFlow.(Я ожидаю, что и Керас также предоставит ссылки на TensorFlow в первом случае)

В чем разница?Зависит ли это от того, как установлены Keras и TensorFlow, или, скорее, от того, как они используются?Это потенциальный источник путаницы, от которого я должен избавиться?Другими словами, я должен исправить мою установку, и как?Или я должен просто согласиться с тем, что их два, и управлять их использованием, чтобы безопасно жить с ними?

Справочная информация: моя установка выполняется под Ubuntu Linux с Python3.5.2, где pip3 list показываетследующие пакеты:

Keras (2.2.4)
Keras-Applications (1.0.6)
Keras-Preprocessing (1.0.5)
tensorboard (1.12.0)
tensorflow (1.12.0)

Кстати, я проверил, что они действительно разные:

import keras as keras
import tensorflow.keras as tf_keras
print( keras is tf_keras )
---> False
print( [keras.__version__ , tf_keras.__version__] )
---> ['2.2.4', '2.1.6-tf']
print( [len(dir(keras)) , len(dir(tf_keras)) ] )
---> [32, 30]
print( [ len(dir(keras.models)) , len(dir(tf_keras.models)) ] )
---> [27, 17]
print( [ len(dir(keras.layers)) , len(dir(tf_keras.layers)) ] )
---> [167, 117]

и, действительно, кажется, что у меня есть два разных Keras, и что первый является более версионным и* более богатый.

Связанные чтения, полезные, но недостаточные для решения вопроса "нужно ли исправление?"вопрос:

Спасибо!

1 Ответ

0 голосов
/ 13 марта 2019

Исправление не требуется. Это два разных пакета, и вы просто управляете их использованием.

...