code: def initialize_connections(self):
          
          n, m = self.connections.visible_to_hidden.shape
          self.connections.visible_to_hidden = np.zeros((n, m))
  
          for i in range(n):
              random_vector = self._random.rand(m)
              # norm          = np.sqrt( np.sum(random_vector * random_vector) )
              self.connections.visible_to_hidden[i]  = random_vector
docs: Randomly initializes the visible-to-hidden connections.
          
          Each weight is independently sampled from a uniform distribution $U(0,1)$.
          The weights are NOT normalized!