Abh*_*ngh 5 model python-3.x deep-learning keras tensorflow
我训练了Keras顺序模型,并在以后加载了它。两种模型都给出不同的精度。我遇到了类似的问题,但无法解决问题。
示例代码:加载和跟踪模型
model = gensim.models.FastText.load('abc.simple')
X,y = load_data()
Vectors = np.array(vectors(X))
X_train, X_test, y_train, y_test = train_test_split(Vectors, np.array(y),
test_size = 0.3, random_state = 0)
X_train = X_train.reshape(X_train.shape[0],100,max_tokens,1)
X_test = X_test.reshape(X_test.shape[0],100,max_tokens,1)
data for input to our model
print(X_train.shape)
model2 = train()
score = model2.evaluate(X_test, y_test, verbose=0)
print(score)
Run Code Online (Sandbox Code Playgroud)
训练准确性为90%。保存模型
# Saving Model
model_json = model2.to_json()
with open("model_architecture.json", "w") as json_file:
json_file.write(model_json)
model2.save_weights("model_weights.h5")
print("Saved model to disk")
Run Code Online (Sandbox Code Playgroud)
但是在我重新启动内核并刚刚加载保存的模型并在同一组数据上运行它之后,准确性降低了。
#load json and create model
json_file = open('model_architecture.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
#load weights into new model
loaded_model.load_weights("model_weights.h5")
print("Loaded model from disk")
# evaluate loaded model on test data
loaded_model.compile(loss='binary_crossentropy', optimizer='rmsprop',
metrics=['accuracy'])
score = loaded_model.evaluate(X_test, y_test, verbose=0)
print(score)
Run Code Online (Sandbox Code Playgroud)
在同一组数据上,准确性降低到75%。
如何使其一致?
我尝试了以下方法,但没有帮助:
from keras.backend import manual_variable_initialization
manual_variable_initialization(True)
Run Code Online (Sandbox Code Playgroud)
甚至,我一次保存了整个模型(权重和体系结构),但无法解决此问题
不确定您的问题是否已解决,但对于未来的问题。我在保存和加载权重时遇到了完全相同的问题。因此,加载模型后,准确度和损失发生了很大变化,从 68% 准确度降至 2%。在我的实验中,我使用 Tensorflow 作为后端,并使用 Keras 模型层嵌入、LSTM 和 Dense。我的问题通过修复使用 NumPy 随机生成器的 keras 种子得到解决,并且由于我使用 Tensorflow 作为后端,我还修复了它的种子。这些是我在文件顶部添加的行,其中也定义了模型。
from numpy.random import seed
seed(42)# keras seed fixing
import tensorflow as tf
tf.random.set_seed(42)# tensorflow seed fixing
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。有关更多信息,请查看此 - https://machinelearningmastery.com/reproducible-results-neural-networks-keras/
| 归档时间: |
|
| 查看次数: |
1770 次 |
| 最近记录: |