def _check_nd_args(input, weights, mode, origin, wghts_name='filter weights'): _util._check_mode(mode) # Weights must always be less than 2 GiB if weights.nbytes >= (1 << 31): raise RuntimeError('weights must be 2 GiB or less, use FFTs instead') weight_dims = [x for x in weights.shape if x != 0] if len(weight_dims) != input.ndim: raise RuntimeError('{} array has incorrect shape'.format(wghts_name)) origins = _util._fix_sequence_arg(origin, len(weight_dims), 'origin', int) for origin, width in zip(origins, weight_dims): _util._check_origin(origin, width) return tuple(origins), _util._get_inttype(input)
def _convert_1d_args(ndim, weights, origin, axis): if weights.ndim != 1 or weights.size < 1: raise RuntimeError('incorrect filter size') axis = internal._normalize_axis_index(axis, ndim) w_shape = [1] * ndim w_shape[axis] = weights.size weights = weights.reshape(w_shape) origins = [0] * ndim origins[axis] = _util._check_origin(origin, weights.size) return weights, tuple(origins)