加载模型张量流

时间:2021-04-02 09:16:21

标签: python tensorflow machine-learning keras

我在将我的训练模型加载到另一个 python 文件时遇到问题。 这是我用来保存它的代码:

input_size = 16
output_size = 2
hidden_layer_size = 50

model = tf.keras.Sequential([
    tf.keras.layers.Dense(hidden_layer_size, 
                          activation='relu'), # 1st hidden layer
    tf.keras.layers.Dense(hidden_layer_size, 
                          activation='relu'), # 2nd hidden layer
    tf.keras.layers.Dense(output_size, 
                          activation='softmax') # output layer
])

model.compile(optimizer='Adam', 
              loss='sparse_categorical_crossentropy', 
              metrics=['accuracy'])

batch_size = 100
max_epochs = 20
early_stopping=tf.keras.callbacks.EarlyStopping()

model.fit(train_inputs, # train inputs
          train_targets, # train targets
          batch_size=batch_size, # batch size
          epochs=max_epochs, # epochs that we will train for (assuming early stopping doesn't kick in)
          callbacks=[early_stopping],
          validation_data=(validation_inputs, validation_targets), # validation data
          verbose = 1 # making sure we get enough information about the training process
          )  
saver = tf.train.Saver()
sess = tf.compat.v1.keras.backend.get_session()
saver.save(sess,r'C:\Users\User\Desktop\tensorflow\model\tf_keras_session\session.ckpt' )

model.save(r'C:\Users\User\Desktop\tensorflow\model\tensorflow_model_3')

这是我用来加载它的代码:

model = tf.keras.models.load_model('./data/tensorflow_model_3')
saver = tf.compat.v1.train.Saver()
sess = K.get_session()
saver.restore(sess, './data/tf_keras_session/session.ckpt')

最后,我得到了一个这样的错误(问题在于定义“saver”):

RuntimeError: When eager execution is enabled, `var_list` must specify a list or dict of variables to save

1 个答案:

答案 0 :(得分:1)

禁用急切执行模式。将其设置为 tf 导入的开始。

tf.compat.v1.disable_eager_execution()