:py:mod:`flatspin.encoder` ========================== .. py:module:: flatspin.encoder .. autoapi-nested-parse:: Input encoding Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: flatspin.encoder.Encoder Functions ~~~~~~~~~ .. autoapisummary:: flatspin.encoder.expand_dims flatspin.encoder.check_input flatspin.encoder.squeeze flatspin.encoder.scale flatspin.encoder.angle flatspin.encoder.angle_grid flatspin.encoder.sw flatspin.encoder.broadcast_waveform flatspin.encoder.sin flatspin.encoder.triangle flatspin.encoder.rotate flatspin.encoder.ppm flatspin.encoder.fixed_vector flatspin.encoder.rotate_vector flatspin.encoder.ensure2d flatspin.encoder.grid flatspin.encoder.onehot flatspin.encoder.get_encoder Attributes ~~~~~~~~~~ .. autoapisummary:: flatspin.encoder.encoders flatspin.encoder.SinEncoder .. py:class:: Encoder(*steps, verbose=False) .. py:method:: _verbose(self, *args, **kwargs) .. py:method:: encode(self, input, verbose=False) Encode input stream input.shape = (n_inputs, input_dim) output.shape = (n_inputs, time, output_dim, ...) # step = (n_inputs, time, 2) # global field = (n_inputs, time, height, width) # local field on grid .. py:method:: __call__(self, input) .. py:method:: _get_default_params(step) :staticmethod: .. py:method:: get_default_params(self) .. py:method:: get_params(self) .. py:method:: set_param(self, name, value) Set all params matching name .. py:method:: set_params(self, **params) .. py:method:: __repr__(self) Return repr(self). .. py:function:: expand_dims(input) Add a new dimension at the end .. py:function:: check_input(input) .. py:function:: squeeze(input) Squeeze all but the first axis .. py:function:: scale(input, H0=0, H=1) Scale input to range [H0, H] .. py:function:: angle(input, phi0=0, phi=360) Map input to angle in range [phi0, phi] -> vector components .. py:function:: angle_grid(input, phi0=0, phi=360, grid=None) Convenience function to offset all angles based on grid .. py:function:: sw(input, rotation=0) Multiply input vectors by SW astroid .. py:function:: broadcast_waveform(input, waveform) Broadcast waveform over input .. py:function:: sin(input, timesteps=100) Multiply input by sine wave .. py:function:: triangle(input, timesteps=100) Multiply input by triangle wave .. py:function:: rotate(input, timesteps=100) Multiply input by rotation vector .. py:function:: ppm(input, pos0=0, pos=1.0, timesteps=100) Pulse position modulation .. py:function:: fixed_vector(input, phi=0) Convert scalar input to vectors at some angle phi .. py:function:: rotate_vector(input, phi=0) Rotate vector input by some angle phi .. py:function:: ensure2d(input, fill=1.0) Convert scalar input to vectors .. py:function:: grid(input, grid_size=(3, 3), grid=None) Encode input onto grid :param grid_size: Create grid of fixed size (uniform weights) Ignored if grid is set :type grid_size: tuple :param grid: Create grid of given size (non-uniform weights) :type grid: array .. py:function:: onehot(input, nbits=2) .. py:data:: encoders .. py:function:: get_encoder(name, **params) .. py:data:: SinEncoder