Tensorflow 与 Keras 的兼容性

问题描述 投票:0回答:5

我正在使用Python 3.6和Tensorflow 2.0,并且有一些Keras代码:

import keras
from keras.models import Sequential
from keras.layers import Dense

model = Sequential()
model.add(Dense(1))
model.compile(optimizer='adam',loss='mean_squared_error',metrics=['accuracy'])

当我运行此代码时,出现以下错误:

Keras 需要 TensorFlow 2.2 或更高版本。通过 pip 安装 TensorFlow 安装张量流

我检查了https://keras.io/,它说 Keras 是基于 Tensorflow 2.0 构建的。 所以我很困惑。最新的 Keras 支持哪个确切版本的 Tensorflow?以及如何修复上述错误?谢谢!

python tensorflow keras version compatibility
5个回答
16
投票

只需检查 Tensorflow 和 Keras 兼容性:

并安装兼容的 Tensorflow 版本。检查此链接了解更多信息。


13
投票

问题是最新的

keras
版本(2.4.x)只是
tf.keras
之上的包装器,我认为这不是您想要的,这就是为什么它特别需要 TensorFlow 2.2 或更高版本。

您可以安装Keras 2.3.1,它支持TensorFlow 2.x和1.x,并且是Keras的最新真实版本。您还可以安装仅支持 TensorFlow 1.x 的 Keras 2.2.4。您可以像这样安装特定版本:

pip install --user keras==2.3.1

8
投票

该配置可能很棘手。在

keras
中使用
tensorflow
怎么样?我认为他们更可能彼此兼容。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

0
投票

keras 与 tf.keras

Keras API 有两种实现:独立的 Keras(随

pip install keras
安装)和与 TensorFlow 捆绑在一起的 tf.keras (
pip install tensorflow
)。

不久前,独立的 Keras 用于支持多个后端,即 TensorFlow、Microsoft Cognitive Toolkit、Theano 和 PlaidML。然而,在放弃 Theano 后,Keras 放弃了对除 TensorFlow 之外的所有这些的支持。所以每个人都开始使用 tf.keras 而不是独立的 Keras。

使用 tf.keras

要使用 tf.keras,您只需安装 TensorFlow (

pip install tensorflow
) 并使用
from tensorflow import keras
。无需安装独立的
keras
软件包,并且不存在兼容性问题的风险:

from tensorflow import keras

model = keras.models.Sequential()
model.add(keras.layers.Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])

或者,您可以在所有内容前面加上

tf.keras
:

import tensorflow as tf

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])

Keras 核心

然而,在 2023 年,独立的 Keras 卷土重来:它再次支持多个后端,即 TensorFlow、PyTorch 和 JAX。预览版本称为 Keras Core。要使用它,只需

pip install keras-core
,然后使用
import keras_core as keras
:

import keras_core as keras

model = keras.models.Sequential()
model.add(keras.layers.Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])

第一次导入

keras_core
时,它将查找
KERAS_BACKEND
环境变量来确定要使用哪个后端。它可以是
"tensorflow"
"torch"
"jax"
。它将保存在
~/.keras/keras.json
中,并在未定义环境变量时使用它。

喀拉斯 3

请注意,Keras Core 的最终版本将称为 Keras 3,您将能够使用

pip install keras
安装它。

此外,tf.keras 将不再单独维护,它将简单地使用 Keras 3(因此安装

tensorflow
也会自动安装
keras
)。
tf.keras
只是
keras
的别名。所有 Keras 代码都将位于 https://github.com/keras-team/keras

所以在不久的将来,代码将是:

import keras

model = keras.models.Sequential()
model.add(keras.layers.Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])

© www.soinside.com 2019 - 2024. All rights reserved.