AttributeError: 'tuple' object has no attribute 'layer'


报错显示


AttributeError: ‘tuple‘ object has no attribute ‘layer‘_输入输出

inbound_layers = nest.map_structure(lambda t: t._keras_history.layer,

AttributeError: ‘tuple’ object has no attribute ‘layer’

而你测试数据的输入输出是正确的

AttributeError: ‘tuple‘ object has no attribute ‘layer‘_tensorflow_02

可能原因:代码中同一个模型添加的网络层来自tensorflow.keras,和keras两个地方。

建议:1.如果使用tensorflow2.0以上版本,使用tenorflow自带的keras来建模。

其中keras相应模块对应在tensorflow.keras的位置参考​​tf.keras​​。找到它们,全部更换成tenorflow自带的。

常用的有:

from tensorflow.keras.layers import (
Input, Dense, Conv2D, MaxPooling2D, AveragePooling2D, ZeroPadding2D,
Flatten, Activation, GlobalAveragePooling2D, GlobalMaxPooling2D, add)
# from keras.layers.normalization import BatchNormalization
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.models import Model
from tensorflow.keras import initializers
# from keras.engine import Layer, InputSpec
from tensorflow.keras.layers import Layer, InputSpec
# from keras.engine.topology import get_source_inputs
from tensorflow.keras.utils import get_source_inputs

2. 如果问题没解决,请检查是否更换彻底了。还可以参考论坛​​StackOverflow​​: