本文介绍了未加载包含Keras和TensorFlow_addons层的TensorFlow模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经从TensorFlow_addons训练了一个带有Keras层和Weight_Normalization层的模型。这是我训练并保存为TensorFlow文件格式的模型:
import tensorflow as tf
import tensorflow.keras as tk
import tensorflow_addons as tfa
model = tf.keras.Sequential([
tf.keras.layers.Input((X_train.shape[1]-1,)),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.2),
tfa.layers.WeightNormalization(tf.keras.layers.Dense(2048, activation="relu")),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.5),
tfa.layers.WeightNormalization(tf.keras.layers.Dense(1048, activation="relu")),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.5),
tfa.layers.WeightNormalization(tf.keras.layers.Dense(206, activation="sigmoid")),
])
(并且它没有自定义指标)
from keras.callbacks import ModelCheckpoint, EarlyStopping
# autosave best Model
best_model = ModelCheckpoint("model", monitor='val_accuracy', mode='max',verbose=0, save_best_only=True)
earlystop = EarlyStopping(monitor = 'val_accuracy',
patience = 15,
mode = 'max',
verbose = 1,
restore_best_weights = True)
callbacks = [best_model, earlystop]
model.compile(loss= 'binary_crossentropy',optimizer= 'Adam',metrics= ['accuracy'])
history = model.fit(X_res, y_res, epochs=100, verbose= 2, validation_data=(X_val[X_val.columns[1:]],y_val[y_val.columns[1:]]), callbacks=callbacks)
但当我加载模型时,它返回错误:
model = tk.models.load_model("../input/model")
您能帮我正确加载模型吗?谢谢
推荐答案
我怀疑您的keras
和tensorflow
都是分开安装的;我使用过tfa
,从来没有遇到过这样的加载问题;
实际上,您可以通过tensorflow
导入所有内容:
import tensorflow as tf
import tensorflow.keras as tk
import tensorflow_addons as tfa
但在这里您通过普通keras
:
from keras.callbacks import ModelCheckpoint, EarlyStopping
为了首先确保您确实存在加载模型问题,请确保每个导入都是通过tensorflow.keras
完成的(我希望在执行此操作后问题会完全消失)。
替换
from keras.callbacks import ModelCheckpoint, EarlyStopping
使用:
from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping
总而言之,使用新导入(全部来自tensorflow.keras
)从头开始培训,然后检查问题是否重现。
这篇关于未加载包含Keras和TensorFlow_addons层的TensorFlow模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!