INNER CODE UNIT · Python
num_per_label
timeseriesAI/tsai · tsai/callback/core.py:195
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:
weights = np.clip(weights, None, np.min(weights) * max_rel_weight)
weights = weights / weights.sum() * len(labels)
return torch.Tensor(weights)
# %% ../../nbs/024_callback.core.ipynb #18b37b49