numpy中的histogram到底干啥的
这个东西最近做深度学习复现总是遇到,记一下。
1 histogram(a,bins=10,range=None,weights=None,density=False); 2 # a是待统计数据的数组; 3 # bins指定统计的区间个数; 4 # range是一个长度为2的元组,表示统计范围的最小值和最大值,默认值None,表示范围由数据的范围决定 5 # weights为数组的每个元素指定了权值,histogram()会对区间中数组所对应的权值进行求和 6 # density为True时,返回每个区间的概率密度;为False,返回每个区间中元素的个数
看一眼应用吧,最近发现Pointnet里面用了两次这段代码,注释写在注释里面了。
labelweights = np.zeros(13) for seg in self.semantic_labels_list: tmp, _ = np.histogram(seg, range(14)) # tmp返回的是所有种类出现的频率,而_记录了边界 self.scene_points_num.append(seg.shape[0]) labelweights += tmp labelweights = labelweights.astype(np.float32) labelweights = labelweights / np.sum(labelweights) # 将每一种类别出现的频率统计了出来,且和为1 self.labelweights = np.power(np.amax(labelweights) / labelweights, 1 / 3.0) # 列数*最大值/3