1,可视化
调用TensorFlow下的summary下的函数,如tf.summary.scalar 标注标量信息,
tf.summary.scalar('loss', loss)
# 获取一个日志输出对象
writer = tf.summary.FileWriter(logdir='./models/14/graph', graph=sess.graph)
# 获取所有的summary输出操作
summary = tf.summary.merge_all()
writer.close()
2,持久化
创建一个持久化对象,持久化是需要传入session
with tf.Graph().as_default():
v1 = tf.Variable(initial_value=5.0, dtype=tf.float32, name='v1')
# a. 创建一个持久化对象
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
# b. 触发持久化的操作
save_path = './models/13/model'
dirpath = os.path.dirname(save_path)
if not os.path.exists(dirpath):
os.makedirs(dirpath)
saver.save(sess, save_path=save_path)
模型恢复
如果本地可持久化文件为空,需要初始化
sess.run(tf.global_variables_initializer())
with tf.Graph().as_default():
with tf.Session() as sess:
saver = tf.train.import_meta_graph('./models/13/model.meta')
saver.restore(sess, tf.train.latest_checkpoint('./models/13/'))
#也可以直接指定对应的ckpt
# save_path = './models/16/model/model.ckpt-99'
# saver.restore(sess, save_path)
graph = tf.get_default_graph()
w1 = graph.get_tensor_by_name("v1:0")
print(sess.run(w1))
#ckpt 参考链接 https://blog.youkuaiyun.com/loveliuzz/article/details/81661875
saver = tf.train.import_meta_graph(meta_graph_or_file="{}.meta".format(ckpt.model_checkpoint_path))
# a. 恢复模型
saver.restore(sess, ckpt.model_checkpoint_path)
input_x = tf.get_default_graph().get_tensor_by_name('network/x:0')
input_y = tf.get_default_graph().get_tensor_by_name('network/y:0')
3,常见的损失函数
一般用于多标签分类情况的损失函数(一个样本可能属于多个类别)。
sigmoid_cross_entropy_with_logits
一般用于单标签分类情况的损失函数(一个样本仅属于一个类别)。
oftmax_cross_entropy_with_logits
4,基本优化算法
基本优化算法
梯度优化算法
梯度下降法(BGD,SGD,MBGD)
Momentum
自适应参数优化算法
adagrad,rmsprop,adadelta,adam