Определение пользовательских потерь при обнаружении объектов TF - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь реализовать свою собственную функцию потерь в API обнаружения объектов tenorflow. Я выполнил следующие шаги:

1) Добавьте потери в core / loss.py (только что использовался скелет)

class ClassBalancedSigmoidFocalClassificationLoss(Loss):
  def __init__(self, gamma=2.0, alpha=0.25):
    super(ClassBalancedSigmoidFocalClassificationLoss, self).__init__()
    self._alpha = alpha
    self._gamma = gamma

  def _compute_loss(self,
                    prediction_tensor,
                    target_tensor,
                    weights,
                    class_indices=None):
    return

2. Добавьте это определение в protos / loss.proto

message ClassificationLoss {
  oneof classification_loss {
    WeightedSigmoidClassificationLoss weighted_sigmoid = 1;
    WeightedSoftmaxClassificationLoss weighted_softmax = 2;
    WeightedSoftmaxClassificationAgainstLogitsLoss weighted_logits_softmax = 5;
    BootstrappedSigmoidClassificationLoss bootstrapped_sigmoid = 3;
    SigmoidFocalClassificationLoss weighted_sigmoid_focal = 4;
    ClassBalancedSigmoidFocalClassificationLoss my_loss = 6;
  }
}

3. Обновите конфигурацию протоса с помощью

./bin/protoc object_detection/protos/*.proto --python_out=.

Однако на шаге 3 я получаю следующую ошибку

object_detection/protos/losses.proto:107:5: "ClassBalancedSigmoidFocalClassificationLoss" is not defined.
object_detection/protos/faster_rcnn.proto: Import "object_detection/protos/losses.proto" was not found or had errors.
object_detection/protos/faster_rcnn.proto:126:12: "HardExampleMiner" is not defined.
object_detection/protos/faster_rcnn.proto:133:12: "ClassificationLoss" is not defined.

Я работаю над TensorFlow 1.15. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...