Когда я смотрю на эту проблему, я нахожу решения, используя переменную сеанса.Я не использую переменную сеанса, поэтому они не работают.Я также пробовал tf.keras.models.save_model
и tf.keras.models.load_model
, но когда я запускаю load_model, я получаю сообщение об ошибке, касающееся невозможности доступа к файлу.
Есть ли лучшее решение для этого?
Моя ошибка: KeyError: 0
Мой тренировочный код:
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=1)
tf.keras.models.save_model(model,"model.h5",overwrite=True,
include_optimizer=True)
Мой тестовый код:
import tensorflow as tf
from tensorflow import keras
from keras.models import load_model
import numpy as np
model = load_model("model.h5")
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
plt.figure(figsize=(20,20))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(x_test[i])
plt.xlabel(np.argmax(model.predict(x_test)[i]))
plt.show()