我想知道在使用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在每个时间间隔内给出对应值的数量?
还是有一种快速运行程序的方法?
谢谢。