使用 import keras 和 import tensorflow.keras 之间的区别?

Ign*_*era 5 python keras tensorflow

我一直在我的笔记本电脑上使用tensorflow作为CPU,由于速度太慢,我决定转移到我的台式电脑并使用tensorflow作为gpu。

问题是,在我的台式计算机中,我无法像这样导入,但我可以在笔记本电脑上执行以下操作:

from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.layers import Dropout, Flatten, Dense
from tensorflow.keras.applications import MobileNetV2
Run Code Online (Sandbox Code Playgroud)

所以我决定使用带有tensorflow-gpu作为后端的keras模块,所以我在桌面上的导入如下所示:

from keras.preprocessing.image import ImageDataGenerator
from keras.layers import Dropout, Flatten, Dense
from keras.applications import MobileNetV2
Run Code Online (Sandbox Code Playgroud)

另外,我在笔记本电脑上的 conda 列表如下所示:

keras                     2.3.1                    pypi_0    pypi
keras-applications        1.0.8                      py_0
keras-preprocessing       1.1.0                      py_1
tensorboard               2.1.0                     py3_0
tensorflow                2.1.0           eigen_py36hdbbabfe_0
tensorflow-base           2.1.0           eigen_py36h49b2757_0
tensorflow-estimator      2.1.0              pyhd54b08b_0
Run Code Online (Sandbox Code Playgroud)

我在桌面上的 conda 列表如下所示:

keras                     2.3.1                    pypi_0    pypi
keras-applications        1.0.8                      py_0
keras-preprocessing       1.1.0                      py_1
tensorboard               2.1.0                     py3_0
tensorflow                2.1.0           gpu_py36h3346743_0
tensorflow-base           2.1.0           gpu_py36h55f5790_0
tensorflow-estimator      2.1.0              pyhd54b08b_0
tensorflow-gpu            2.1.0                h0d30ee6_0
Run Code Online (Sandbox Code Playgroud)

那么,使用像tensorflow.keras.applications这样的导入和直接使用keras.applications有什么区别,哪个更好或更差?我到处寻找,但在桌面上找不到导入的解决方案,我想修复这个问题,因为我喜欢使用像tensorflow.keras这样的导入。

Ove*_*gon 6

tensorflow.keras导入使用TensorFlow存储库代码,而keras导入使用Keras存储库代码。两者使用独立的方法/类实现,即使kerastensorflow.

根据您的使用情况,功能可能会有很大差异,也可能差别不大。tensorflow.keras建议使用更好的维护和更新 -除非您使用 TF <2,其中两者在大多数情况下是相同的,除了性能考虑


Bru*_*llo 2

现在没有太大区别。Keras 现在位于 TensorFlow 内部,因为 Google 选择维护它来补充 TensorFlow,因为 Keras 是一个高级 API。我建议使用tensorflow.keras,因为将来它会因为google团队而获得更多支持。

参考