fourier_encode#
- ivy.fourier_encode(x, max_freq, /, *, num_bands=4, linear=False, concat=True, flatten=False)[source]#
Pad an array with fourier encodings.
- Parameters:
x (
Union[Array,NativeArray]) – Input array to encode.max_freq (
Union[float,Array,NativeArray]) – The maximum frequency of the encoding.num_bands (
int, default:4) – The number of frequency bands for the encoding. Default is 4.linear (
bool, default:False) – Whether to space the frequency bands linearly as opposed to geometrically. Default isFalse.concat (
bool, default:True) – Whether to concatenate the position, sin and cos values, or return separately. Default isTrue.flatten (
bool, default:False) – Whether to flatten the position dimension into the batch dimension. Default is False.
- Return type:
Union[Array,NativeArray,Tuple]- Returns:
ret – New array with the final dimension expanded, and the encodings stored in this channel.
Examples
>>> x = ivy.array([1,2,3]) >>> y = 1.5 >>> z = ivy.fourier_encode(x,y) >>> print(z) ivy.array([[ 1.0000000e+00, 1.2246468e-16, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, -1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00], [ 2.0000000e+00, -2.4492936e-16, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00], [ 3.0000000e+00, 3.6739404e-16, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, -1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00]])
>>> x = ivy.array([3,10]) >>> y = 2.5 >>> z = ivy.fourier_encode(x, y, num_bands=3) >>> print(z) ivy.array([[ 3.0000000e+00, 3.6739404e-16, 3.6739404e-16, 3.6739404e-16, -1.0000000e+00, -1.0000000e+00, -1.0000000e+00], [ 1.0000000e+01, -1.2246468e-15, -1.2246468e-15, -1.2246468e-15, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00]])
- Array.fourier_encode(self, max_freq, /, *, num_bands=4, linear=False, concat=True, flatten=False)[source]#
ivy.Array instance method variant of ivy.fourier_encode. This method simply wraps the function, and so the docstring for ivy.fourier_encode also applies to this method with minimal changes.
- Parameters:
self (
Array) – input array to encodemax_freq (
Union[float,Array,NativeArray]) – The maximum frequency of the encoding.num_bands (
int, default:4) – The number of frequency bands for the encoding. Default is 4.linear (
bool, default:False) – Whether to space the frequency bands linearly as opposed to geometrically. Default isFalse.concat (
bool, default:True) – Whether to concatenate the position, sin and cos values, or return separately. Default isTrue.flatten (
bool, default:False) – Whether to flatten the position dimension into the batch dimension. Default isFalse.
- Return type:
Union[Array,NativeArray,Tuple]- Returns:
ret – New array with the final dimension expanded, and the encodings stored in this channel.
Examples
>>> x = ivy.array([1, 2, 3]) >>> y = 1.5 >>> z = x.fourier_encode(y) >>> print(z) ivy.array([[ 1.0000000e+00, 1.2246468e-16, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, -1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00], [ 2.0000000e+00, -2.4492936e-16, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00], [ 3.0000000e+00, 3.6739404e-16, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, -1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00]])
>>> x = ivy.array([3, 10]) >>> y = 2.5 >>> z = x.fourier_encode(y, num_bands=3) >>> print(z) ivy.array([[ 3.0000000e+00, 3.6739404e-16, 3.6739404e-16, 3.6739404e-16, -1.0000000e+00, -1.0000000e+00, -1.0000000e+00], [ 1.0000000e+01, -1.2246468e-15, -1.2246468e-15, -1.2246468e-15, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00]])
- Container.fourier_encode(self, max_freq, /, *, num_bands=4, linear=False, flatten=False, key_chains=None, to_apply=True, prune_unapplied=False, map_sequences=False)[source]#
ivy.Container instance method variant of ivy.fourier_encode. This method simply wraps the function, and so the docstring for ivy.fourier_encode also applies to this method with minimal changes.
- Parameters:
self (
Container) – Input container to apply fourier_encode at leaves.max_freq (
Union[float,Array,NativeArray,Container]) – The maximum frequency of the encoding.num_bands (
Union[int,Container], default:4) – The number of frequency bands for the encoding. Default is 4.linear (
Union[bool,Container], default:False) – Whether to space the frequency bands linearly as opposed to geometrically. Default isFalse.flatten (
Union[bool,Container], default:False) – Whether to flatten the position dimension into the batch dimension. Default isFalse.key_chains (
Optional[Union[List[str],Dict[str,str],Container]], default:None) – The key-chains to apply or not apply the method to. Default isNone.to_apply (
Union[bool,Container], default:True) – If True, the method will be applied to key_chains, otherwise key_chains will be skipped. Default isTrue.prune_unapplied (
Union[bool,Container], default:False) – Whether to prune key_chains for which the function was not applied. Default isFalse.map_sequences (
Union[bool,Container], default:False) – Whether to also map method to sequences (lists, tuples). Default isFalse.dtype – Data type of the returned array. Default is
None.out – Optional output container. Default is
None.
- Return type:
Container- Returns:
ret – New container with the final dimension expanded of arrays at its leaves, and the encodings stored in this channel.
Examples
>>> x = ivy.Container(a = ivy.array([1,2]), ... b = ivy.array([3,4])) >>> y = 1.5 >>> z = x.fourier_encode(y) >>> print(z) { a: (<class ivy.data_classes.array.array.Array> shape=[2, 9]), b: (<class ivy.data_classes.array.array.Array> shape=[2, 9]) }
>>> x = ivy.Container(a = ivy.array([3,10]), ... b = ivy.array([4,8])) >>> y = 2.5 >>> z = x.fourier_encode(y,num_bands=3) >>> print(z) { a: (<class ivy.data_classes.array.array.Array> shape=[2, 7]), b: (<class ivy.data_classes.array.array.Array> shape=[2, 7]) }