INNER CODE UNIT · Python
n_bins
timeseriesAI/tsai · tsai/callback/core.py:190
n_bins = np.max(labels) - np.min(labels)
num_per_label, bin_edges = np.histogram(labels, bins=n_bins, range=label_range)
new_labels = np.searchsorted(bin_edges, labels, side='left')
new_labels[new_labels == 0] = 1
if reweight == 'sqrt_inv':
num_per_label = np.sqrt(num_per_label)
lds_kernel_window = get_lds_kernel_window(lds_kernel=lds_kernel, lds_ks=lds_ks, lds_sigma=lds_sigma)
smoothed_value = convolve1d(num_per_label, weights=lds_kernel_window, mode='constant')
if show_plot:
plt.bar(bin_edges[:-1], num_per_label / num_per_label.sum(), width=(bin_edges[1]-bin_edges[0]), color='lime', edgecolor='black', label='original')
plt.plot(bin_edges[:-1], smoothed_value / smoothed_value.sum(), color='red', label='smoothed')
plt.title(f"Label distribution by bin (reweight={reweight})")
plt.legend(loc='best')
plt.show()
num_per_label = smoothed_value[new_labels.flatten() - 1].reshape(*labels_shape)
weights = 1 / num_per_label
weights[num_per_label == 0] = 0
if max_rel_weight is not None: