我一直在我的笔记本电脑上使用tensorflow for cpu,由于速度太慢,我决定转移到我的台式机上,使用tensorflow for gpu。
问题是,在我的台式计算机上,我不能像这样导入,而我可以在笔记本电脑上这样做:
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.layers import Dropout, Flatten, Dense
from tensorflow.keras.applications import MobileNetV2所以我决定使用keras模块和tensorflow-gpu作为后端,这样我在桌面上的导入就像这样:
from keras.preprocessing.image import ImageDataGenerator
from keras.layers import Dropout, Flatten, Dense
from keras.applications import MobileNetV2此外,我在笔记本电脑上的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我在桌面上的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那么,使用像tensorflow.keras.applications这样的导入和直接使用keras.applications有什么不同,哪个更好,哪个更差呢?我到处寻找,都找不到桌面上导入的解决方案,我想解决这个问题,因为我喜欢使用像tensorflow.keras这样的导入。
发布于 2020-04-07 06:58:46
tensorflow.keras导入使用TensorFlow存储库代码,而keras导入使用Keras存储库代码。这两种方法使用独立的方法/类实现,即使keras是从tensorflow导入的。
根据您的使用情况,功能可能会有很大差异,也可能不会有太大差异。除非您使用TF <2,因为除了performance considerations之外,两者在大多数情况下都是一样的,否则推荐使用tensorflow.keras进行维护和更新。
发布于 2020-04-07 06:51:58
现在没有太大的不同。Keras现在在TensorFlow内部,因为谷歌选择维护它来补充TensorFlow,因为Keras是一个高级应用编程接口。我建议使用tensorflow.keras,因为在未来,由于谷歌团队的存在,它将会有更多的支持。
发布于 2020-04-07 07:21:20
AFAIK,(1) keras模块与tensorflow.Keras处于不同的开发路径。您可以通过安装这两个版本的最新版本并运行以下终端命令来检查它:
> pip list | grep -i keras
Keras 2.3.1
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0与…比较
> python -c "import tensorflow; print(tensorflow.keras.__version__)"
2.2.4-tf
> pip list | grep tensorflow
tensorflow 2.1.0(2)根据我的经验,tensorflow.keras访问某些模块的灵活性较低。例如,假设我们想要通过修改compute_output_shape()来创建自定义卷积/池层。然后我们必须通过from keras.utils.conv_utils import conv_output_length导入它。但是目前我还没有找到在Tensorflow v2.x中导入conv_output_length()的方法。
但是,展望未来,tensorflow.keras将从谷歌获得更多更好的支持。将Keras contrib graph与Tensorflow contrib graph进行比较,查看此图
https://stackoverflow.com/questions/61070082
复制相似问题