1、参考教程
https://blog.youkuaiyun.com/qq_33200967/article/details/86532831
2、使用pip安装
使用pip安装非常简单,只要一条命令就够了,如下:
pip3 install --upgrade visualdl
在与paddlepaddle相同的虚拟环境下安装
测试一下是否安装成功了,运行一个例子下载日志文件:
# 在当前位置下载一个日志
vdl_create_scratch_log
然后再输入,启动VisualDL并加载这个日志信息:
visualdl --logdir=scratch_log/ --port=8080
然后在浏览器上输入:
http://127.0.0.1:8080
即可看到一个可视化的界面,如下:
3、查看自己训练的模型
从来自教程的代码:https://www.jiqizhixin.com/articles/2019-03-04
import paddle
import paddle.fluid as fluid
from visualdl import LogWriter
# 构建一个LeNet-5网络
def lenet_5(img, label):
conv1 = fluid.nets.simple_img_conv_pool(
input=img,
filter_size=5,
num_filters=20,
pool_size=2,
pool_stride=2,
act="relu")
conv1_bn = fluid.layers.batch_norm(input=conv1)
conv2 = fluid.nets.simple_img_conv_pool(
input=conv1_bn,
filter_size=5,
num_filters=50,
pool_size=2,
pool_stride=2,
act="relu")
predition = fluid.layers.fc(input=conv2, size=10, act="softmax", param_attr="fc_w")
cost = fluid.layers.cross_entropy(input=predition, label=label)
avg_cost = fluid.layers.mean(cost)
acc = fluid.layers.accuracy(input=predition, label=label)
return avg_cost, acc
img = fluid.layers.data(name="img", shape=[1, 28, 28], dtype="float32")
label = fluid.layers.data(name="label", shape=[1], dtype="int64")
avg_cost, acc = lenet_5(img, label)
train_reader = paddle.batch(paddle.dataset.mnist.train(), batch_size=64)
optimizer = fluid.optimizer.Adam(learning_rate=0.001)
optimizer.minimize(avg_cost)
place = fluid.CPUPlace()
feeder = fluid.DataFeeder(feed_list=[img, label], place=place)
exe = fluid.Executor(place)
log_writter = LogWriter("./vdl_log", sync_cycle=10)
with log_writter.mode("train") as logger:
# 分别用两个scalar来记录loss和accuracy的趋势
scalar_loss = logger.scalar(tag="loss")
scalar_accuracy = logger.scalar(tag="accuracy")
# 用histogram来记录fc层的参数分布变化趋势
histogram = logger.histogram(tag="histogram", num_buckets=50)
exe.run(fluid.default_startup_program())
step = 0
epochs = 5
param_name = "fc_w"
for i in range(epochs):
for batch in train_reader():
cost, accuracy, param = exe.run(
feed=feeder.feed(batch),
fetch_list=[avg_cost.name, acc.name, param_name])
step += 1
# 将数据写入记录中
scalar_loss.add_record(step, cost)
scalar_accuracy.add_record(step, accuracy)
histogram.add_record(step, param.flatten())
print("epoch %d: step %d, acc is %.2f%% and loss is %.2f" % (i, step, accuracy * 100, cost))
# 保存模型到model_save目录中,接着可以用visualdl --model_pb model_save来加载该模型
fluid.io.save_inference_model(dirname="model_save", feeded_var_names=[img.name], target_vars=[avg_cost, acc],
executor=exe)
运行代码,直到进程自然终止
然后在终端,进入虚拟环境,进入vdl_log所在的文件夹,运行代码
visualdl --logdir=vdl_log/ --port=8080
我的vdl_log文件夹在book/note10里面,所以在终端也要进入note10文件夹
否则需要在 --logdir的路径中输入绝对路径
在网页中可以看到本次训练的效果