def loss_cnn(self, cnn, x_out, dst, dis_out, lam1=100, lam2=1):
loss_rec = lam1 * ( F.mean_absolute_error(x_out, dst) )
batchsize,_,w,h = dis_out.data.shape
loss_adv = lam2 * F.sum( F.softplus(-dis_out) ) / batchsize / w / h
loss = loss_rec + loss_adv
chainer.report({'loss': loss,"loss_rec":loss_rec, 'loss_adv': loss_adv }, cnn)
return loss
python类softplus()的实例源码
def loss_dis(self, dis, dis_real, dis_fake):
batchsize,_,w,h = dis_real.data.shape
L1 = (2+np.random.rand()) * F.sum(F.softplus(-dis_real)) / batchsize / w / h
L2 = (2+np.random.rand()) * F.sum(F.softplus(dis_fake)) / batchsize / w / h
loss = L1 + L2
chainer.report({'loss': loss}, dis)
return loss