如何从Tensorflow中的tf.keras导入keras?

Geo*_*eRF 32 python deep-learning keras tensorflow

import tensorflow as tf
import tensorflow 

from tensorflow import keras
from keras.layers import Dense
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

from keras.layers import Input, Dense
Traceback (most recent call last):

  File "<ipython-input-6-b5da44e251a5>", line 1, in <module>
    from keras.layers import Input, Dense

ModuleNotFoundError: No module named 'keras'
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

注意:我使用的是Tensorflow 1.4版

Mih*_*uja 58

使用tensorflow中的keras模块,如下所示:

import tensorflow as tf

导入类

from tensorflow.python.keras.layers import Input, Dense

或直接使用

dense = tf.keras.layers.Dense(...)

  • 使用tensorflow.python.keras从来都不好,因为它回避了公共API。虽然它在 TF 2.6 之前有效,但现在不再有效,因为 Tensorflow 现在在 TensorFlow 包之外使用 keras 模块。[请参阅发行说明](https://newreleases.io/project/github/tensorflow/tensorflow/release/v2.6.0)。``Keras 被拆分成一个单独的 PIP 包(keras),其代码已移至 GitHub 存储库 keras-team/keras。tf.keras 的 API 端点保持不变,但现在由 keras PIP 包支持。...```。代码不一样,我在混合它们时出错了。 (3认同)
  • 有什么想法可以找到layer_utils吗?它曾经是这样导入的: from keras.utils import layer_utils 但是,按照您上面的建议:tensorflow.python.keras.utils import layer_utils 会导致错误: ImportError: Cannot import name 'layer_utils' (2认同)
  • 我对 maxnorm 也有同样的问题 (2认同)

Ram*_*ath 6

尝试 from tensorflow.python import keras

有了这个,您可以在一行更改中轻松地将 keras 依赖代码更改为 tensorflow。

你也可以试试from tensorflow.contrib import keras。这适用于 tensorflow 1.3

编辑:对于tensorflow 1.10及更高版本,您可以使用import tensorflow.keras as keras在 tensorflow 中获取 keras。

  • 我已经转向 [tensorflow 1.10.0](https://www.tensorflow.org/versions/r1.10/api_docs/python/tf/keras) 对于这个版本你必须使用tensorflow.keras 使用 ``` import tensorflow as tf``` ```keras = tf.keras``` 用于从纯 keras 到 tensorflow keras 的在线转换 (2认同)

Rut*_*wik 5

为了简单起见,我将采用 keras 和 tf.keras 中的两个版本的代码。这里的示例是一个简单的神经网络模型,其中包含不同的层。

在Keras中(v2.1.5)

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

def get_model(n_x, n_h1, n_h2):
    model = Sequential()
    model.add(Dense(n_h1, input_dim=n_x, activation='relu'))
    model.add(Dense(n_h2, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(4, activation='softmax'))
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    print(model.summary())
    return model
Run Code Online (Sandbox Code Playgroud)

在tf.keras (v1.9)中

import tensorflow as tf

def get_model(n_x, n_h1, n_h2):
    model = tf.keras.Sequential()
    model.add(tf.keras.layers.Dense(n_h1, input_dim=n_x, activation='relu'))
    model.add(tf.keras.layers.Dense(n_h2, activation='relu'))
    model.add(tf.keras.layers.Dropout(0.5))
    model.add(tf.keras.layers.Dense(4, activation='softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    print(model.summary())

    return model
Run Code Online (Sandbox Code Playgroud)

或者可以用下面的方式代替上面的方式导入

from tensorflow.keras.layers import Dense
Run Code Online (Sandbox Code Playgroud)

tf.keras官方文档

注意:TensorFlow版本为1.9


Tim*_*lin 5

从 TensorFlow 2.0 开始,只有 PyCharm 版本 > 2019.3 才能识别TensorFlow 内部的tensorflow和( )。Francois Chollet 本人(Keras 的作者)建议每个人都改用普通的.kerastensorflow.kerastensorflow.keraskeras

这里还有一个重要的提及:

重要提示TF >= 2.0

JetBrains 存在一个持续存在的问题(实际上来自 TensorFlow 方面),似乎这个错误时常出现(https://youtrack.jetbrains.com/issue/PY-53599)。

有时,PyCharm 无法在 Tensorflow 或其他导入中正确导入/识别 keras。

根据 Python + TF + PyCharm 版本,您可能必须在以下导入类型之间切换:

from tensorflow.keras.models import Model
Run Code Online (Sandbox Code Playgroud)

或者

from tensorflow.python.keras.models import Model
Run Code Online (Sandbox Code Playgroud)


Sha*_*aza 5

每次都降级不太好,您可能需要进行以下更改,如下所示:

张量流

将张量流导入为 tf

#Keras
from tensorflow.keras.models import Sequential, Model, load_model, save_model
from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras.layers import Dense, Activation, Dropout, Input, Masking, TimeDistributed, LSTM, Conv1D, Embedding
from tensorflow.keras.layers import GRU, Bidirectional, BatchNormalization, Reshape
from tensorflow.keras.optimizers import Adam

from tensorflow.keras.layers import Reshape, Dropout, Dense,Multiply, Dot, Concatenate,Embedding
from tensorflow.keras import optimizers
from tensorflow.keras.callbacks import ModelCheckpoint
Run Code Online (Sandbox Code Playgroud)

重点是,而不是使用

from keras.layers import Reshape, Dropout, Dense,Multiply, Dot, Concatenate,Embedding
Run Code Online (Sandbox Code Playgroud)

你需要添加

from tensorflow.keras.layers import Reshape, Dropout, Dense,Multiply, Dot, Concatenate,Embedding
Run Code Online (Sandbox Code Playgroud)