TensorBoard视觉化网络每层权重分布、视觉化网络层结构
" class="reference-link">
日萌社
人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)
tensorflow 2.0 画出model网络模型的拓扑图
tensorflow 2.0 的回调函数callbacks(TensorBoard、ModelCheckpoint)
TensorBoard视觉化网络每层权重分布、视觉化网络层结构
MSE(均方误差)、MAE(平均绝对误差)
from_logits
CE(Cross-Entropy)、BCE(Binary Cross-Entropy 即Sigmoid+CE)、CCE(Categorical Cross-Entropy 即Softmax+CE)
对连续值/离散值进行预处理的两种方式(标准化/one-hot化)、反标准化/逆标准化、字符串预处理
损失函数loss、指标函数metrics
激活函数 Sigmoid、Tanh、ReLU、Softmax
Batch Normalization
反向传播、梯度下降、学习率、优化器optimizers(GD、SGD、Momentum、AdaGrad、Adam)
权重初始化对于激活函数的选择:随机常态分布/随机正态分布初始化(标准差为0.01或1)、Xavier(Glorot)初始化、He初始化
图像增强(IA)、数据预处理
混淆矩阵tf.math.confusion_matrix
使用预训练网络训练的两种方式:Keras Applications、TensorFlow Hub
TensorBoard
先导入 from tensorflow import keras
keras.callbacks.TensorBoard的初始化默认值如下
keras.callbacks.TensorBoard(log_dir='./logs', histogram_freq=0, batch_size=32, write_graph=True,
write_grads=False, write_images=False, embeddings_freq=0, embeddings_layer_names=None,
embeddings_metadata=None, embeddings_data=None, update_freq='epoch')
Tensorboard 基本可视化。
TensorBoard 是由 Tensorflow 提供的一个可视化工具。
这个回调函数为 Tensorboard 编写一个日志, 这样你可以可视化测试和训练的标准评估的动态图像,
也可以可视化模型中不同层的激活值直方图。
如果你已经使用 pip 安装了 Tensorflow,你应该可以从命令行启动 Tensorflow:tensorboard --logdir=/full_path_to_your_logs
参数:
log_dir: 用来保存被 TensorBoard 分析的日志文件的文件名。
histogram_freq: 对于模型中各个层计算激活值和模型权重直方图的频率(训练轮数中)。 如果设置成 0 ,直方图不会被计算。
对于直方图可视化的验证数据(或分离数据)一定要明确的指出。
write_graph: 是否在 TensorBoard 中可视化图像。 如果 write_graph 被设置为 True,日志文件会变得非常大。
write_grads: 是否在 TensorBoard 中可视化梯度值直方图。 histogram_freq 必须要大于 0 。
batch_size: 用以直方图计算的传入神经元网络输入批的大小。
write_images: 是否在 TensorBoard 中将模型权重以图片可视化。
embeddings_freq: 被选中的嵌入层会被保存的频率(在训练轮中)。
embeddings_layer_names: 一个列表,会被监测层的名字。 如果是 None 或空列表,那么所有的嵌入层都会被监测。
embeddings_metadata: 一个字典,对应层的名字到保存有这个嵌入层元数据文件的名字。 查看 详情 关于元数据的数据格式。
以防同样的元数据被用于所用的嵌入层,字符串可以被传入。
embeddings_data: 要嵌入在 embeddings_layer_names 指定的层的数据。 Numpy 数组(如果模型有单个输入)或 Numpy 数组列表(如果模型有多个输入)。
update_freq: 'batch' 或 'epoch' 或 整数。当使用 'batch' 时,在每个 batch 之后将损失和评估值写入到 TensorBoard 中。
同样的情况应用到 'epoch' 中。如果使用整数,例如 10000,这个回调会在每 10000 个样本之后将损失和评估值写入到 TensorBoard 中。
注意,频繁地写入到 TensorBoard 会减缓你的训练。
1.TensorBoard 视觉化网络每层权重分布:
model = keras.callbacks.TensorBoard(log_dir='./logs', histogram_freq=1)
#histogram_freq=1代表每训练一个epoch,把各层的网络权重分布都记录下来
2.TensorBoard 视觉化网络层结构:
model = keras.callbacks.TensorBoard(log_dir='./logs')
model.set_model(model) #将网络模型存储到TensorBoard上
还没有评论,来说两句吧...