Keras layer tensorflow导入错误:无法导入keras.layers

Keras layer tensorflow导入错误:无法导入keras.layers,keras-layer,Keras Layer,我试图使用jupyternotebook导入keras,但我得到一个错误 通常,使用tensorflow.keras.XX代替keras.XX可以解决问题,但keras.layers的情况并非如此。还有别的办法解决这个问题吗? 下面是我写的代码 import tensorflow as tf import tensorflow.keras from tensorflow.keras import backend as k from tensorflow.keras.models import M

我试图使用jupyternotebook导入keras,但我得到一个错误

通常,使用tensorflow.keras.XX代替keras.XX可以解决问题,但keras.layers的情况并非如此。还有别的办法解决这个问题吗? 下面是我写的代码

import tensorflow as tf
import tensorflow.keras
from tensorflow.keras import backend as k
from tensorflow.keras.models import Model, load_model, save_model
from tensorflow.keras.layers import Input,Dropout,BatchNormalization,Activation,Add
from keras.layers.core import Lambda
from keras.layers.convolutional import Conv2D, Conv2DTranspose
from keras.layers.pooling import MaxPooling2D
from tensorflow.keras.layers.merge import concatenate
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint, ReduceLROnPlateau
from tensorflow.keras import backend as K
from tensorflow.keras import optimizers
下面是我得到的错误

from tensorflow.keras.preprocessing.image import array_to_img, img_to_array, load_img#,save_img

import time
t_start = time.time()

<ipython-input-51-e901beac4908> in <module>
      4 from tensorflow.keras.models import Model, load_model, save_model
      5 from tensorflow.keras.layers import Input,Dropout,BatchNormalization,Activation,Add
----> 6 from keras.layers.core import Lambda
      7 from keras.layers.convolutional import Conv2D, Conv2DTranspose
      8 from keras.layers.pooling import MaxPooling2D

/usr/local/lib/python3.5/dist-packages/keras/__init__.py in <module>
      1 from __future__ import absolute_import
      2 
----> 3 from . import utils
      4 from . import activations
      5 from . import applications

/usr/local/lib/python3.5/dist-packages/keras/utils/__init__.py in <module>
      4 from . import data_utils
      5 from . import io_utils
----> 6 from . import conv_utils
      7 from . import losses_utils
      8 from . import metrics_utils

/usr/local/lib/python3.5/dist-packages/keras/utils/conv_utils.py in <module>
      7 from six.moves import range
      8 import numpy as np
----> 9 from .. import backend as K
     10 
     11 

/usr/local/lib/python3.5/dist-packages/keras/backend/__init__.py in <module>
----> 1 from .load_backend import epsilon
      2 from .load_backend import set_epsilon
      3 from .load_backend import floatx
      4 from .load_backend import set_floatx
      5 from .load_backend import cast_to_floatx

/usr/local/lib/python3.5/dist-packages/keras/backend/load_backend.py in <module>
     88 elif _BACKEND == 'tensorflow':
     89     sys.stderr.write('Using TensorFlow backend.\n')
---> 90     from .tensorflow_backend import *
     91 else:
     92     # Try and load external backend.

/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py in <module>
     52 
     53 # Private TF Keras utils
---> 54 get_graph = tf_keras_backend.get_graph
     55 # learning_phase_scope = tf_keras_backend.learning_phase_scope  # TODO
     56 name_scope = tf.name_scope

AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph'
从tensorflow.keras.preprocessing.image导入数组到img,img到数组,加载img,保存img
导入时间
t_start=time.time()
在里面
4从tensorflow.keras.models导入模型、加载模型、保存模型
5从tensorflow.keras.layers导入输入、退出、批次标准化、激活、添加
---->6来自keras.layers.core导入Lambda
7来自keras.layers.Conv2D卷积输入,Conv2DTranspose
8从keras.layers.pooling导入MaxPoolig2D
/usr/local/lib/python3.5/dist-packages/keras/__-init__.py-in
1来自未来导入绝对导入
2.
---->3从。导入UTIL
4来自。导入激活
5从。导入应用程序
/usr/local/lib/python3.5/dist-packages/keras/utils/_________.py-in
4来自。导入数据工具
5从。导入io_utils
---->6从。导入conv_utils
7从。进口损失
8从。导入度量工具
/usr/local/lib/python3.5/dist-packages/keras/utils/conv_utils.py in
7从6.5移到进口范围
8作为np进口numpy
---->9从。。将后端导入为K
10
11
/usr/local/lib/python3.5/dist-packages/keras/backend/_________.py-in
---->1 from.load_后端导入epsilon
2 from.load\u后端导入集\u epsilon
3 from.load_后端导入floatx
4从加载\u后端导入集\u floatx
5 from.load_backend import cast_to_floatx
/usr/local/lib/python3.5/dist-packages/keras/backend/load_backend.py in
88 elif_后端=='tensorflow':
89 sys.stderr.write('使用TensorFlow后端。\n')
--->90从tensorflow\u后端导入*
91其他:
92#尝试加载外部后端。
/中的usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py
52
53#私人TF Keras utils
--->54 get\u graph=tf\u keras\u backend.get\u graph
55#学习#阶段#范围=tf#keras#后端。学习#阶段#范围#待办事项
56 name\u scope=tf.name\u scope
AttributeError:模块“tensorflow.python.keras.backend”没有属性“get\u graph”
不要将keras导入为:

导入tensorflow.keras

尝试:

!!pip安装keras

然后

从keras.layers导入Lambda

欲了解更多详情,请访问:
我想问题出在

from keras.layers.core import Lambda
Lambda不是核心的一部分,而是层本身!所以你应该使用

from tf.keras.layers import Lambda
或者,您可以直接调用Lambda作为模型的一部分,而无需显式导入

举个简单的例子

    def linear_transform(x):
       v1 = tf.Variable(1., name='multiplier')
       v2 = tf.Variable(0., name='bias')
       return x*v1 + v2

   linear_layer = tf.keras.layers.Lambda(linear_transform)
   model.add(linear_layer)
   model.add(tf.keras.layers.Dense(10, activation='relu'))
   model.add(linear_layer)  # Reuses existing Variables