有没有办法测量模型的后向通行证?

时间:2018-04-30 14:03:55

标签: tensorflow machine-learning keras

此处已有相关问题TensorFlow: Is there a way to measure FLOPS for a model?

然而,@ Tobias Scheck给出的答案是前锋传球数据。

有没有办法测量/估计反向传球?

1 个答案:

答案 0 :(得分:1)

如果您只想获得快速号码,只需添加

即可
grads = tf.gradients(C, [A, B])

到@Tobias Scheck构造梯度计算节点的代码。然后,从原始数字(没有渐变操作)中减去新数字(使用渐变操作)以获得估计的翻转。

关于在大型项目中使用此方法的警告。此方法使用整个图的静态分析。这有一些问题,包括:

  • while循环中ops的翻转只会添加一次。
  • 将会添加永远不会正常运行的操作(某些TF功能可能会在图中留下垃圾操作)。
  • 这种分析在很大程度上取决于形状推断。它可能不适用于所有操作。
  • 此分析取决于注册可以估计给定操作的触发器的函数。可能有没有这些函数的操作,并且这些函数不能精确地模拟TF将执行操作的实际内核所完成的触发器。

有关详细信息,请参阅:https://github.com/tensorflow/tensorflow/blob/r1.8/tensorflow/core/profiler/g3doc/profile_model_architecture.md

最好将其与实际运行记录(RunMetadata)结合使用,或者使用纯粹基于运行时的方法,例如: Can I measure the execution time of individual operations with TensorFlow?,并对结果进行一些过滤/聚合。