Определение пользовательской потери при обнаружении объекта TF

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

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. Обновите конфигурацию protos,

./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. Пожалуйста помоги.

0 ответов

Другие вопросы по тегам