def fprop(self, H_prev, H, dH): dH = None self.mu = H_prev[:, :self.size] self.log_sigma = H_prev[:, self.size:] nn.fill_randn(self.eps) # self.eps= nn.ones(self.eps.shape) nn.exp(self.log_sigma, self.sigma) H[:] = self.mu + self.sigma * self.eps return H, dH, self.sigma, self.mu
def fprop(self, H_prev, H, dH): dH = None self.mu = H_prev[:,:self.size] self.log_sigma = H_prev[:,self.size:] nn.fill_randn(self.eps) # self.eps= nn.ones(self.eps.shape) nn.exp(self.log_sigma,self.sigma) H[:] = self.mu + self.sigma*self.eps return H,dH,self.sigma,self.mu
def load_weights_from(self,net_from,lst_from = None, lst_to = None, init = None): if lst_from == None: assert lst_to == None self.weights.mem[:] = net_from.weights.mem else: assert lst_to != None and init != None nn.fill_randn(self.weights.mem) nn.multiply(self.weights.mem,init) for k in lst_from: print k w_from, b_from = net_from.weights[k] w_to, b_to = self.weights[k] assert w_from.shape == w_to.shape w_to[:], b_to[:] = w_from, b_from
def load_weights_from(self, net_from, lst_from=None, lst_to=None, init=None): if lst_from == None: assert lst_to == None self.weights.mem[:] = net_from.weights.mem else: assert lst_to != None and init != None nn.fill_randn(self.weights.mem) nn.multiply(self.weights.mem, init) for k in lst_from: print k w_from, b_from = net_from.weights[k] w_to, b_to = self.weights[k] assert w_from.shape == w_to.shape w_to[:], b_to[:] = w_from, b_from
def randn(self, k=1.0): nn.fill_randn(self.mem) self.mem *= k
def randn(self,k=1.0): nn.fill_randn(self.mem) self.mem *= k