神经网络学习小记录43——Keras中Tensorboard的使用

约定不等于承诺〃 2023-07-17 11:22 126阅读 0赞

神经网络学习小记录43——Keras中Tensorboard的使用

  • 学习前言
  • Tensorboard详解
  • 使用例子
  • 1、loss和acc
  • 2、权值直方图
  • 3、梯度直方图
  • 实现代码

学习前言

可视化是个好东西呀,怎么学学呢!
在这里插入图片描述

Tensorboard详解

该类在存放在keras.callbacks模块中。拥有许多参数,主要的参数如下:

1、log_dir: 用来保存Tensorboard的日志文件等内容的位置

2、histogram_freq: 对于模型中各个层计算激活值和模型权重直方图的频率。

3、write_graph: 是否在 TensorBoard 中可视化图像。

4、write_grads: 是否在 TensorBoard 中可视化梯度值直方图。

5、batch_size: 用以直方图计算的传入神经元网络输入批的大小。

6、write_images: 是否在 TensorBoard中将模型权重以图片可视化。

7、update_freq: 常用的三个值为’batch’ 、 ‘epoch’ 或 整数。当使用 ‘batch’ 时,在每个 batch 之后将损失和评估值写入到 TensorBoard 中。 ‘epoch’ 类似。如果使用整数,会在每一定个样本之后将损失和评估值写入到 TensorBoard 中。

默认值如下:

  1. log_dir='./logs', # 默认保存在当前文件夹下的logs文件夹之下
  2. histogram_freq=0,
  3. batch_size=32,
  4. write_graph=True, #默认是True,默认是显示graph的。
  5. write_grads=False,
  6. write_images=False,
  7. update_freq='epoch'

使用例子

以手写体为例子,我们打开histogram_freq和write_grads,也就是在Tensorboard中保存权值直方图和梯度直方图。
打开CMD,利用tensorboard —logdir=logs生成tensorboard观测网页。

1、loss和acc

在这里插入图片描述在这里插入图片描述

2、权值直方图

在这里插入图片描述

3、梯度直方图

在这里插入图片描述

实现代码

  1. import numpy as np
  2. from keras.layers import Input, Dense, Dropout, Activation,Conv2D,MaxPool2D,Flatten
  3. from keras.datasets import mnist
  4. from keras.models import Model
  5. from keras.utils import to_categorical
  6. from keras.callbacks import TensorBoard
  7. if __name__=="__main__":
  8. (x_train,y_train),(x_test,y_test) = mnist.load_data()
  9. x_train=np.expand_dims(x_train,axis=-1)
  10. x_test=np.expand_dims(x_test,axis=-1)
  11. y_train=to_categorical(y_train,num_classes=10)
  12. y_test=to_categorical(y_test,num_classes=10)
  13. batch_size=128
  14. epochs=10
  15. inputs = Input([28,28,1])
  16. x = Conv2D(32, (5,5), activation='relu')(inputs)
  17. x = Conv2D(64, (5,5), activation='relu')(x)
  18. x = MaxPool2D(pool_size=(2,2))(x)
  19. x = Flatten()(x)
  20. x = Dense(128, activation='relu')(x)
  21. x = Dropout(0.5)(x)
  22. x = Dense(10, activation='softmax')(x)
  23. model = Model(inputs,x)
  24. model.compile(loss='categorical_crossentropy', optimizer="adam",metrics=['acc'])
  25. Tensorboard= TensorBoard(log_dir="./model", histogram_freq=1,write_grads=True)
  26. history=model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, shuffle=True, validation_split=0.2,callbacks=[Tensorboard])

发表评论

表情:
评论列表 (有 0 条评论,126人围观)

还没有评论,来说两句吧...

相关阅读