如何在TensorBoard中查看TensorFlow计算图的总参数量?
TensorBoard查看可训练参数总数量方案
原生TensorBoard没有内置的总可训练参数量直接展示入口,你可以通过以下两种方式实现需求:
方案1:写入Summary日志后直接查看(推荐)
只需要在训练代码中新增少量统计逻辑,后续启动TensorBoard即可在标量面板直接读取数值,不需要额外计算:
- 用
tf.trainable_variables()获取所有可训练参数,遍历累加每个参数的元素总数得到总参数量 - 将统计结果作为固定标量写入TensorFlow日志文件
示例代码:
import tensorflow as tf # 模型定义完成后执行统计 total_trainable_params = 0 for var in tf.trainable_variables(): total_trainable_params += tf.reduce_prod(var.shape).numpy() # 写入日志,step设为0即可,因为是固定值 with tf.summary.create_file_writer("./your_log_dir").as_default(): tf.summary.scalar("total_trainable_params", total_trainable_params, step=0)
后续启动TensorBoard后,切换到「标量(Scalars)」分类下,就能直接看到total_trainable_params对应的数值。
方案2:计算图页面手动统计(无需改代码)
如果不想修改训练代码重新生成日志,也可以直接在已有的计算图页面手动统计,仅适合小型模型使用:
- 打开TensorBoard的「Graphs」面板,筛选所有
Variable类型节点 - 点击单个变量节点,右侧属性栏会展示该变量的shape,计算各维度乘积得到单参数元素数,累加所有可训练变量的数值即可得到总参数量
注意:大模型可训练变量数量多,该方式统计效率很低
内容的提问来源于stack exchange,提问作者thesydne
相关产品推荐
相关产品推荐

