def style_loss(style_end_points, stylized_end_points, style_weights): """Style loss. Args: style_end_points: dict mapping VGG16 layer names to their corresponding Tensor value for the style input. stylized_end_points: dict mapping VGG16 layer names to their corresponding Tensor value for the stylized input. style_weights: dict mapping layer names to their associated style loss weight. Keys that are missing from the dict won't have their style loss computed. Returns: Tensor for the total style loss, dict mapping loss names to losses. """ total_style_loss = np.float32(0.0) style_loss_dict = {} for name, weight in style_weights.iteritems(): loss = tf.reduce_mean( (learning_utils.gram_matrix(stylized_end_points[name]) - learning_utils.gram_matrix(style_end_points[name]))**2) weighted_loss = weight * loss style_loss_dict['style_loss/' + name] = loss style_loss_dict['weighted_style_loss/' + name] = weighted_loss total_style_loss += weighted_loss style_loss_dict['total_style_loss'] = total_style_loss return total_style_loss, style_loss_dict
def style_loss(style_end_points, stylized_end_points, style_weights): """Style loss. Args: style_end_points: dict mapping VGG16 layer names to their corresponding Tensor value for the style input. stylized_end_points: dict mapping VGG16 layer names to their corresponding Tensor value for the stylized input. style_weights: dict mapping layer names to their associated style loss weight. Keys that are missing from the dict won't have their style loss computed. Returns: Tensor for the total style loss, dict mapping loss names to losses. """ total_style_loss = np.float32(0.0) style_loss_dict = {} for name, weight in style_weights.items(): loss = tf.reduce_mean( (learning_utils.gram_matrix(stylized_end_points[name]) - learning_utils.gram_matrix(style_end_points[name])) ** 2) weighted_loss = weight * loss style_loss_dict['style_loss/' + name] = loss style_loss_dict['weighted_style_loss/' + name] = weighted_loss total_style_loss += weighted_loss style_loss_dict['total_style_loss'] = total_style_loss return total_style_loss, style_loss_dict