1.Tensorborad简介
- 日志保存功能实现
import tensorflow as tf
input1=tf.constant([1.0,2.0,3.0],name="input1")
input2=tf.Variable(tf.random_uniform([3]),name="input2")
output=tf.add_n([input1,input2],name="add")
writer=tf.summary.FIleWriter("/home/xxy/log",tf.get_default_graph())
writer.close()
- 在终端,通过命令打开TensorBoard并对logdir参数复制保存日志文件路径
tensorboard --logdir=/home/xxy/log
该服务的默认端口号为6006。通过运行命令会产生一个服务端口号。
- 复制该端口号在浏览器中打开链接,看到tensorboard初始界面。
- Tensorflow2.0实现TensorBoard
import tensorflow as tf
import datetime
(train_images,train_labels),(test_images,test_labels)=tf.keras.datasets.fashi_mnist.load_data()
model=tf.keras.Squential()
model.add(tf.keras.layers.Flatten(input_shape=[28,28]))
model.add(tf.keras.layers.Dense(500,activation='relu'))
model.add(tf.keras.layers.Dense(10,activation='softmax'))
model.complie(optimizer='SGD',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
log_dir="/home/xxy/log"+datetime.datetime.now()
now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback=tf.keras.callbacks.TersorBoard(log_dir=log_dir,histogram_freq=1)
model.fit(x=train_images,y=train_labels,epochs=5,
validation_data=(test_images,test_labels),
callbacks=[tensorboard_callback])
tensorboard --logdir=/home/xxy/log/2020**/train
2.Fashion-MNIST服饰图像识别的可视化
import tensorflow as tf
import datetime
import numpy as np
import math
(train_images,train_labels),(test_images,test_labels)=tf.keras.datasets.fashi_mnist.load_data()
log_dir="/home/xxy/log"+datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
file_writer=tf.summary.create_file_writer(log_dir+'/images')
model=tf.keras.Squential()
model.add(tf.keras.layers.Flatten(input_shape=[28,28]))
model.add(tf.keras.layers.Dense(500,activation='relu'))
model.add(tf.keras.layers.Dense(10,activation='softmax'))
model.complie(optimizer='SGD',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
def summary_image(epoch,logs):
with file_writer.as_default():
images=np.reshape(train_images[0:100],(-1,28,28,1))
tf.summary.image("fashion-MNIST",images,max_outputs=30,step=epoch)
lambda_callback=tf.keras.callbacks.LambdaCallback(on_epoch_end=summary_image)
def lr_schedule(epoch):
initial_learning_rate=0.001
decay_rate=0.9
decayed_learning_rate=initial_learning_rate*math.pow(decay_rate,(epoch/10))
with file_writer.as_default():
tf.summary.scalar('learning_rate',data=decayed_learning_rate,step=epoch)
return decayed_learning_rate
lr_callback=tf.keras.callbacks.LearningRateScheduler(lr_schedule)
tensorboard_callback=tf.keras.callbacks.TensorBoard(log_dir=log_dir,write_image=Ture,histogram_freq=1)
mlpmodel.fit(x=train_images,y=train_labels,epochs=10,
validation_data=(test_images,test_labels),
callbacks=[tensorboard_callback,lambda_callback,lr_callback])