(shape, scales=0, dtype=None, device=None)
| 34 | |
| 35 | @lru_cache |
| 36 | def freq_weight_nd(shape, scales=0, dtype=None, device=None): |
| 37 | indexers = [[slice(None) if i == j else None for j in range(len(shape))] for i in range(len(shape))] |
| 38 | weights = [freq_weight_1d(n, scales, dtype, device)[ix] for n, ix in zip(shape, indexers)] |
| 39 | return reduce(torch.minimum, weights) |
| 40 | |
| 41 | |
| 42 | # Karras et al. preconditioned denoiser |