Как сохранить модель ML с тензорным потоком без сеанса? - PullRequest
0 голосов
/ 05 октября 2018

Когда я смотрю на эту проблему, я нахожу решения, используя переменную сеанса.Я не использую переменную сеанса, поэтому они не работают.Я также пробовал 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...