def _setup_loss(self): if self.loss[TYPE] == 'softmax_cross_entropy': self.train_loss_function = SoftmaxCrossEntropyLoss( num_classes=self.num_classes, feature_loss=self.loss, name='train_loss' ) elif self.loss[TYPE] == 'sampled_softmax_cross_entropy': self.train_loss_function = SampledSoftmaxCrossEntropyLoss( decoder_obj=self.decoder_obj, num_classes=self.num_classes, feature_loss=self.loss, name='train_loss' ) else: raise ValueError( "Loss type {} is not supported. Valid values are " "'softmax_cross_entropy' or " "'sampled_softmax_cross_entropy'".format(self.loss[TYPE]) ) self.eval_loss_function = SoftmaxCrossEntropyLoss( num_classes=self.num_classes, feature_loss=self.loss, name='eval_loss')
def __init__(self, num_classes=0, feature_loss=None, name='softmax_cross_entropy_metric'): super(SoftmaxCrossEntropyMetric, self).__init__(name=name) self.softmax_cross_entropy_function = SoftmaxCrossEntropyLoss( num_classes=num_classes, feature_loss=feature_loss)
def _setup_loss(self): if self.loss[TYPE] == 'mean_squared_error': self.train_loss_function = MSELoss() self.eval_loss_function = MSEMetric(name='eval_loss') elif self.loss[TYPE] == 'mean_absolute_error': self.train_loss_function = MAELoss() self.eval_loss_function = MAEMetric(name='eval_loss') elif self.loss[TYPE] == SOFTMAX_CROSS_ENTROPY: self.train_loss_function = SoftmaxCrossEntropyLoss( num_classes=self.vector_size, feature_loss=self.loss, name='train_loss') self.eval_loss_function = SoftmaxCrossEntropyMetric( num_classes=self.vector_size, feature_loss=self.loss, name='eval_loss') else: raise ValueError('Unsupported loss type {}'.format( self.loss[TYPE]))
def __init__(self, **kwargs): super().__init__() self.softmax_cross_entropy_function = SoftmaxCrossEntropyLoss(**kwargs)