首页 > 解决方案 > 张量流分析器中两个百分比数字的解释?

问题描述

我正在使用tensorflow 提供的分析器工具。这是分析结果的快照: 在此处输入图像描述

我的问题:数据后面的两个百分比数字是什么意思?

标签: tensorflowprofiling

解决方案


第一个数字是在函数中使用的总内存/花费的时间的百分比,而第二个是在内部函数中分配/花费的内存使用/在函数中花费的时间的百分比。通常这些被称为包含(包括函数中的函数)和排他(不包括函数中的函数)分析。


我将在时间上解释这一点,但它对内存分析的工作原理相同。

这是因为分析器只是测量每个函数调用需要多长时间。例如,如果您有:

def func1():
    # something
    func2()
    # something

def func2():
    # something

并且让我们假设func1()调用的分析器测量 1000 毫秒的花费func1750ms花费,func2那么数字将是:

func1    100%    25%
func2     75%    

因为 100% 的时间都花在了func1- 但只有 25% ((1000ms-750ms)/1000ms) 的时间花在func1没有花在func2. 同样 75% (750ms/1000ms) 总共花费在func2. 在这个例子中,第二个数字func2也是 75%,因为我没有在其中包含任何代码,但是如果里面有其他函数,那么将应用相同的数学。所以为了不混淆我没有把它包括在那里。

为了使它更有趣并包含另一个示例,假设您有:

def func1():
    # something
    func2()
    # something
    func3()
    # something

def func2():
    # something

def func3():
    # something

分析器测量 1000 ms in func1、 200ms infunc2和 500 ms 在func3表中看起来像这样:

func1   100% (1000 / 1000)    30%  ((1000 - 200 - 500) / 1000)
func2    20% ( 200 / 1000)
func3    50% ( 500 / 1000)

推荐阅读