Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. class Update:
  2.     """
  3.    Sparse object that holds an update of parameters.
  4.    """
  5.  
  6.     def __init__(self, positions=None, values=None):
  7.         """
  8.        positions: array of int
  9.        values: array of float
  10.        """
  11.         if positions is None and values is None:
  12.             self._positions = list([])
  13.             self._values = list([])
  14.         else:
  15.             self._positions = list(positions)
  16.             self._values = list(values)
  17.  
  18.     def assign_mul(self, coeff):
  19.         """
  20.        self = self * coeff
  21.        coeff: float
  22.        """
  23.         self._values = [item * coeff for item in self._values]        
  24.  
  25.     def assign_madd(self, update, coeff):
  26.         """
  27.        self = self + update * coeff
  28.        coeff: float
  29.        """
  30.         for position, v in zip(update._positions, update._values):
  31.             if position in self._positions:
  32.                 v_index = self._positions.index(position)
  33.                 self._values[v_index] += self._values[v_index] * coeff
  34.             else:
  35.                 self._positions.append(position)
  36.                 self._values.append(v)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement