from tensorflow.keras.layers import Input, Multiply, GlobalAveragePooling1D, Add, Dense, Activation, ZeroPadding1D, \
BatchNormalization, Flatten, Conv1D, AveragePooling1D, MaxPooling1D, GlobalMaxPooling1D, Lambda, UpSampling1D, Reshape
from keras.models import Model, load_model
...
模型構造代碼(略)
...
model = Model(inputs=X_input, outputs=X, name='attention_56'
model.summary()
model.compile(loss='categorical_crossentropy', optimizer='adam',
metrics=['accuracy'])
當我使用以上代碼構造模型時,運作代碼之後會報以下錯誤:
定位發現問題出在這一行:
檢測代碼發現,Model是直接從keras中import進來的,而網絡層是從tensorflow的keras中import進來的。
from keras.models import Model, load_model
将keras改為tensorflow.keras即可解決,這說明在用到keras的地方,keras的來源應保持一緻,以免導緻錯誤。
from tensorflow.keras.models import Model, load_model