文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 一、checkpoint
- 1.保存
- 2.加载
- 二、save_model
- 1.保存
- 2.加载
提示:以下是本篇文章正文内容,下面案例可供参考
一、checkpoint导入包
import pandas as pd import tensorflow as tf import scipy import pandas as pd from scipy.io import arff from sklearn.model_selection import train_test_split from sklearn import preprocessing import numpy as np from tqdm import tqdm from sklearn.utils import shuffle1.保存
# 初始化
saver_test = tf.train.Saver()
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
。。。训练代码。。。
if testloss < save_min_loss:
save_min_loss = testloss
saver_test.save(sess, './tf12_lamb_0/test',global_step=i) # i是训练步数
save_min_loss_idx = i
print('最小loss:', i, testloss)
2.加载
import tensorflow as tf # 定义占位符输入变量 xs = tf.placeholder(tf.float32, [None, 363],name = 'image') # ys = tf.placeholder(tf.float32, [None, 6],name = 'ys') # y_online_first = tf.placeholder(tf.float32, [None, 6],name = 'y_online_first') # y_true_recall = tf.placeholder(tf.float32, [None, 6],name = 'y_true_recall') # is_default_use = tf.placeholder(tf.float32, [None,],name = 'is_default_use') # 网络结构 l1 = tf.layers.dense(xs, 30, activation=tf.nn.leaky_relu, use_bias=True,kernel_initializer='random_normal',bias_initializer='zeros',name = 'l1') l1_1 = tf.layers.batch_normalization(l1, training = True,name = 'l1_1') l2 = tf.layers.dense(l1_1, 30, activation=tf.nn.leaky_relu, use_bias=True,kernel_initializer='random_normal',bias_initializer='zeros',name = 'l2') l2_1 = tf.layers.batch_normalization(l2, training = True,name = 'l2_1') l3 = tf.layers.dense(l2_1, 30, activation=tf.nn.leaky_relu, use_bias=True,kernel_initializer='random_normal',bias_initializer='zeros',name = 'l3') l3_1 = tf.layers.batch_normalization(l3, training = True,name = 'l3_1') l4 = tf.layers.dense(l3_1, 30, activation=tf.nn.leaky_relu, use_bias=True,kernel_initializer='random_normal',bias_initializer='zeros',name = 'l4') l4_1 = tf.layers.batch_normalization(l4, training = True,name = 'l4_1') l5 = tf.layers.dense(l4_1, 6, activation=tf.nn.sigmoid, use_bias=True,kernel_initializer='random_normal',bias_initializer='zeros') tf.identity(l5, name="scores")
saver = tf.train.Saver()
with tf.Session() as sess:
# saver.restore(sess, "./test_lamb_0/test-38800") # lamb 0
saver.restore(sess, "./tf12_lamb_0/test-37600") # lamb 7
print("model restored")
pl5_test_2 = sess.run(l5, feed_dict={xs: X_test})
print(pl5_test_2)
二、save_model
1.保存
if testloss < save_min_loss:
save_min_loss = testloss
saver_test.save(sess, './tf12_lamb_0/test',global_step=i)
save_min_loss_idx = i
print('最小loss:', i, testloss)
# 保存pb文件
tf.saved_model.simple_save(
sess,
"./lamb_0_pb/pbmodel_{}/".format(i),
inputs={"image": xs},
outputs={"scores": l5}
)
2.加载
import tensorflow as tf
with tf.Session(graph=tf.Graph()) as sess:
tf.saved_model.loader.load(sess, ["serve"], "./lamb_0_pb/pbmodel_800/")
graph = tf.get_default_graph()
x = sess.graph.get_tensor_by_name('image:0') # tensor名字要和保存的时候对上
print(x)
y = sess.graph.get_tensor_by_name('scores:0') # tensor名字要和保存的时候对上
print(y)
prediction = sess.run(y, feed_dict={x: X_test})
print(prediction)



