def getRegTerm(self, params, We, initial_We, l_out, l_softmax, pickled_params):
if params.traintype == "normal":
l2 = 0.5*params.LC*sum(lasagne.regularization.l2(x) for x in self.network_params)
if params.updatewords:
return l2 + 0.5*params.LW*lasagne.regularization.l2(We-initial_We)
else:
return l2
elif params.traintype == "reg":
tmp = lasagne.layers.get_all_params(l_out, trainable=True)
idx = 1
l2 = 0.
while idx < len(tmp):
l2 += 0.5*params.LRC*(lasagne.regularization.l2(tmp[idx]-np.asarray(pickled_params[idx].get_value(), dtype = config.floatX)))
idx += 1
tmp = lasagne.layers.get_all_params(l_softmax, trainable=True)
l2 += 0.5*params.LC*sum(lasagne.regularization.l2(x) for x in tmp)
return l2 + 0.5*params.LRW*lasagne.regularization.l2(We-initial_We)
elif params.traintype == "rep":
tmp = lasagne.layers.get_all_params(l_softmax, trainable=True)
l2 = 0.5*params.LC*sum(lasagne.regularization.l2(x) for x in tmp)
return l2
else:
raise ValueError('Params.traintype not set correctly.')
lstm_model_sim.py 文件源码
python
阅读 16
收藏 0
点赞 0
评论 0
评论列表
文章目录