c # — темный поток замороженных pb — тензор потока резкого вывода

У меня возникли проблемы с моим проектом обнаружения объектов. У меня есть рабочее решение, которое использует tenorflowsharp nuget. Я пытаюсь получить более быстрое обнаружение, и я хотел поэкспериментировать с моделью YOLO.

Я использую darkflow для работы с YOLO с Tensorflow. Я натренировал свою модель на моем собственном наборе данных, а затем заморозил ее, следуя инструкциям на странице darkflow. Теперь у меня есть файл PB и метафайл, пока все хорошо.

Затем я скорректировал свой код в проекте tenorflowsharp, указав на только что созданный protobuf и адаптировав имя входных выходных переменных, из:

String[] outputs = { "detection_boxes:0", "detection_scores:0", "detection_classes:0", "num_detections:0" };
runner.AddInput("image_tensor:0", tensor).Fetch(outputs);
try
{
output = runner.Run();
}
catch (TFException e)
{
Console.WriteLine(e.ToString());
}

чтобы:

runner.AddInput("input:0", tensor).Fetch("output:0");
try
{
output = runner.Run();
}
catch (TFException e)
{
Console.WriteLine(e.ToString());
}

После имени переменных в документации по Darkflow. Я могу добавить входной и выходной указатель на сеанс, но когда я могу запустить обнаружение (Runner.Run) Я получаю исключение:

TensorFlow.TFException: Expects arg[0] to be float but uint8 is provided

Runner.Run() возвращает ноль.

Я не уверен, как называются выходные тензоры в darkflow, в документации, которую я нашел:

Наименование входного и выходного тензоров — соответственно «вход» и «выход». Для дальнейшего использования этого файла protobuf, пожалуйста, обратитесь к официальной документации Tensorflow по C ++ API здесь.

но я бы ожидал другую коллекцию (тензоры) как тип возвращаемого значения, как для SSD и других моделей, верно?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …