我如何获得张量值的一些范围值?

时间:2019-07-31 07:27:05

标签: python tensorflow

我想知道在使用Tensorflow进行神经网络学习期间特征图的值的分布。

例如,单层中的参数数量为5,000,000(仅出于说明目的)。

我想知道直方图之类的值的数量。

例如,我想知道在输出张量中在-4到-3.99范围内以及0到0.01范围内有多少个值。

实际上,我可以使用plt.hist (tensor)来查看直方图。

但是我想知道实际值,而不是图片。

所以我这样编码。

def count_distribution(tensor):
    tensor = tensor.reshape(5000000)

    rangelist = []
    for i in range(-400, 402):
        rangelist.append(i*0.01)

    countlist = [0]*801
    for i in range(0, 801):
        for tensorvalue in tensor:
            if tensorvalue >= rangelist[i] and tensorvalue < rangelist[i+1]:
                countlist[i] += 1

    return countlist

此代码的值介于-4和4之间,间隔为0.01

在列表中,它计算与间隔相对应的零件数。

当我进行实验时,如果输入很小,此代码将按预期工作。

但是在神经网络学习中使用上面的代码是一个问题。

有这么多(5,000,000)计数需要很长时间。

这真的要花几个小时。

所以我正在寻找另一种方式。

是否存在一个函数,其中Tensorflow在每个时间间隔内给出对应值的数量?

还是有一种快速运行程序的方法?

谢谢。

0 个答案:

没有答案