loss = 0.0 loss += l2_loss loss += square_loss netDist = NetDist(x, x_reconstructed, config) if config['style_weight'] > 0.0: style_loss, style_out_1, style_out_2 = netDist.get_dist_style() style_loss *= config['style_weight'] else: style_loss = style_out_1 = style_out_2 = theano.shared(np.asarray(0.0).astype('float32')) if config['content_weight'] > 0.0: content_loss = config['content_weight'] * netDist.get_dist_content() else: content_loss = theano.shared(np.asarray(0.0).astype('float32')) #128 x 3 x 96 x 96 imgGrad = T.grad(style_loss + content_loss, x_reconstructed)[0,:,:,0] loss += style_loss + content_loss loss += 1.0 * variational_loss all_grads = T.grad(loss, params) scaled_grads = lasagne.updates.total_norm_constraint(all_grads, 5.0) updates = lasagne.updates.adam(scaled_grads, params, learning_rate = 0.001)
loss = 0.0 loss += l2_loss loss += square_loss netDist = NetDist(x, x_reconstructed, config) if config['style_weight'] > 0.0: style_loss, style_out_1, style_out_2 = netDist.get_dist_style() style_loss *= config['style_weight'] else: style_loss = style_out_1 = style_out_2 = theano.shared(np.asarray(0.0).astype('float32')) if config['content_weight'] > 0.0: content_loss_values, varLst = netDist.get_dist_content() content_loss = sum(content_loss_values.values()) * config['content_weight'] params += varLst else: content_loss = theano.shared(np.asarray(0.0).astype('float32')) content_loss_values, varLst = netDist.get_dist_content() #128 x 3 x 96 x 96 loss += style_loss + content_loss loss += 1.0 * variational_loss loss += 1.0 * smoothness_penalty all_grads = T.grad(loss, params)