Protoc object_detection/protos/*. proto: Нет такого файла или каталога

Я следую примеру, найденному здесь. Но всякий раз, когда я ввожу команду "C: /Program Files/protoc/bin/protoc", object_detection/protos/.proto --python_out =. Я получаю сообщение об ошибке: object_detection/protos/.proto: такого файла или каталога нет. Я не могу создать каталог с именем *.proto. Так что мне не хватает фундаментальной информации о том, как это сделать. Поскольку я не могу найти никого, кто бы жаловался на эту проблему, это должно быть довольно просто. Я использую ОС Windows.

Ответ 1

Решено для Windows, быть в " исследовании " и иметь " протокол " в пути, тогда это будет работать:

for /f %i in ('dir /b object_detection\protos\*.proto') do protoc object_detection\protos\%i --python_out=.

Удачи !

Ответ 2

Обязательно измените каталог на "models\research \" и попробуйте выполнить шаги из учебника, используя версию protoc 3.4.0, точно так же, как и учебник. Я работал только для меня, используя 3.4.0.

моя работа над cmd:

C:\Users\...\protoc-3.4.0-win32\bin\protoc object_detection/protos/*.proto --python_out=.

Ответ 3

Я собираюсь опубликовать это на все эти вопросы, которые я могу найти, чтобы люди знали. Я должен написать эти указания для себя и других позже в любом случае.

Следующее работает и не работает таким образом:

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

*.Proto, обозначающий все файлы, не работает для компилятора. Если вы используете версию 3.5, вы должны указать каждый отдельный файл.

Итак, вот как это будет выглядеть:

  1. Запустить cmd
  2. Перейдите в папку с исследованиями, которую вы скачали (может отличаться):

    cd /d C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research
    
  3. Получите расположение файла protroc.exe, который вы скачали

    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc 
    
  4. Перейдите в папку protos, чтобы вы знали, какие файлы вам нужно делать индивидуально

    C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research\object_detection\protos
    
  5. Теперь начните спамить каждый отдельный элемент .proto в этой папке в cmd:

    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/anchor_generator.proto --python_out=.
    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/argmax_matcher.proto --python_out=.
    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/bipartite_matcher.proto --python_out=.
    ....and so on until you finish all items in the protos folder
    
  6. Или вы можете назвать это день и получить 3.4 и запустить:

    C:\Users\yourusername\Projects\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/*.proto --python_out=.
    

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

Ответ 4

измените каталог на модель или мастер модели tenorflow, затем вам нужно скомпилировать .proto файлы protobuff, используя следующие команды, запускаемые одна за другой

protoc --python_out=. .\object_detection\protos\anchor_generator.proto 
protoc --python_out=. .\object_detection\protos\argmax_matcher.proto  
protoc --python_out=. .\object_detection\protos\bipartite_matcher.proto 
protoc --python_out=. .\object_detection\protos\box_coder.proto 
protoc --python_out=. .\object_detection\protos\box_predictor.proto 
protoc --python_out=. .\object_detection\protos\eval.proto 
protoc --python_out=. .\object_detection\protos\faster_rcnn.proto 
protoc --python_out=. .\object_detection\protos\faster_rcnn_box_coder.proto 
protoc --python_out=. .\object_detection\protos\grid_anchor_generator.proto 
protoc --python_out=. .\object_detection\protos\hyperparams.proto 
protoc --python_out=. .\object_detection\protos\image_resizer.proto 
protoc --python_out=. .\object_detection\protos\input_reader.proto 
protoc --python_out=. .\object_detection\protos\losses.proto 
protoc --python_out=. .\object_detection\protos\matcher.proto 
protoc --python_out=. .\object_detection\protos\mean_stddev_box_coder.proto 
protoc --python_out=. .\object_detection\protos\model.proto 
protoc --python_out=. .\object_detection\protos\optimizer.proto 
protoc --python_out=. .\object_detection\protos\pipeline.proto 
protoc --python_out=. .\object_detection\protos\post_processing.proto 
protoc --python_out=. .\object_detection\protos\preprocessor.proto 
protoc --python_out=. .\object_detection\protos\region_similarity_calculator.proto 
protoc --python_out=. .\object_detection\protos\square_box_coder.proto 
protoc --python_out=. .\object_detection\protos\ssd.proto 
protoc --python_out=. .\object_detection\protos\ssd_anchor_generator.proto 
protoc --python_out=. .\object_detection\protos\string_int_label_map.proto 
protoc --python_out=. .\object_detection\protos\train.proto 
protoc --python_out=. .\object_detection\protos\keypoint_box_coder.proto 
protoc --python_out=. .\object_detection\protos\multiscale_anchor_generator.proto

Ответ 5

ну в моем случае сломал голову долго-долго... проблема была в protoc версии 3.5... он не принимает эти аргументы на WINDOWS... он будет работать совершенно нормально, если вы загрузите версию 3.4.0, которая может быть использована с вашими собственно аргументами :! protoc object_detection/protos/*. proto --python_out =.

Ответ 6

Если окажется, что вам не хватает целого models/research/object_detection/protos такого как я, вы можете загрузить его отдельно с https://github.com/tensorflow/models. Отсутствие этих файлов приведет к той же ошибке, т.е. No such file or directory.

Ответ 7

Привет всем, вот как я смог решить эту ошибку, узнав об обнаружении объектов с помощью tenorflow:

ШАГИ:

1- Чтобы загрузить 64-разрядную систему Google Protobuf для Windows 10, перейдите по этой ссылке. https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0 и установите "protoc-3.4.0-win32.zip". (Совет - не устанавливайте protoc-3.6.0)

2- Скачать файл модели по этой ссылке. https://github.com/tensorflow/models

3. Теперь вам нужно выполнить сборку protobuf в командной строке с помощью каталога исследований:

4-Сначала зайдите в каталог исследований: cd C:\Users\Ankit\tenorflow\models\research и нажмите Enter//просто пример

5-Затем выполните этот шаг сразу после вышеуказанного шага:

"C:\Users\Ankit\Desktop\Tensorflow\protbuf\bin\protoc.exe" object_detection/protos/*. Proto --python_out =. и нажмите Enter (между объектом и знаком есть пробел, и это написано в одну строку)

6-Примечание. Перейдите в папку object_detection/protos, и, если есть файлы .py, вы успешно завершили компиляцию файлов .proto

БЛАГОДАРЮ ВАС

Ответ 8

Файлы .proto должны находиться в tensorflow-models/research/object_detection/protos/.

Итак, вы должны сначала

cd C:\path\to\tensorflow-models\research 

как в соответствии с инструкциями по установке. Вышеупомянутый мнимый путь и использует структуру пути Windows. Вы должны заменить его фактическим путем на вашем компьютере. И когда вы находитесь в этом каталоге, вы можете запустить свою команду:

C:\Program Files\protoc-<version>\bin\protoc object_detection/protos/.proto --python_out=.

Опять же, приведенное выше является всего лишь общим примером. Вам нужно будет заменить <version> на вашу версию protoc.

Сделайте НЕ скопировать-вставить выше, так как он не будет работать непосредственно на вашем компьютере. Вместо этого вы должны найти путь к двоичному файлу protoc на вашем компьютере и использовать его как команду перед object_detection/protos/.proto --python_out=.

Ответ 9

иногда окна Cmd не принимают подстановочный знак '*'. поэтому он показывает ошибку. вы можете использовать цикл для решения этой проблемы. для создания Loop в Cmd checkout эта ссылка. https://ss64.com/nt/for.html ссылка: protoc не может найти файлы в Windows 7

Ответ 10

Я столкнулся с проблемой missing output directive. Решение, которое сработало для меня, состояло в том, что я попробовал полные имена файлов, так как *.proto не работал.

Ответ 11

У меня такая же проблема на Ubuntu 16.04. Измените каталог на исследование, и теперь проблема с отсутствующим файлом решена.

Ответ 12

Перейдите на страницу выпусков protoc и загрузите файл protoc-3.4.0-win32.zip, распакуйте его, и вы найдете protoc.exe в каталоге bin. тогда нужно добавить путь к системному пути.

Переместите это в модель/папку исследований.

Далее вы можете использовать команду protoc.

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

Ответ 13

Небольшой Python-код, который может помочь вам быстрее скомпилировать protoc

import os

#folder where protos are located
os.chdir('C:\\Users\\ ~ \\models-master\\research\\object_detection\\protos')
#list protos
fs=os.listdir()

#back to where your protoc.exe is located
os.chdir('C:\\Users\\ ~ \\models-master\\research')

for f in fs:
if f.find(".proto")>-1:
    print(f)
    s='protoc object_detection/protos/'+f+' --python_out=.'
    print(s)
    os.system(s)

Ответ 14

Это то, что я сделал, и я мог скомпилировать с 3.4 и 3.6 версии на Windows 7 Professional

C:\tensorflow1\models\research>for /F %i in 
('dir /b 
.\object_detection\protos\*
.proto') do ( c:\tensorflow1\models\research\bin/protoc 
.\object_detection\protos\%i --python_out=.)

Ответ 15

У меня та же ошибка Object_detection/protos/.proto: No such file or directory.

Это решается, когда я использую Protocol Buffers v3.4.0.

Убедитесь, что вы находитесь внутри models-master\research а затем используйте команду как:

FullPathToProtoc/protoc-3.4.0-win32/bin/protoc object_detection/protos/*.proto --python_out=.

Ответ 16

Я использую protoc-3.6.1-win32.zip.. На окнах

Создан командный файл, который скомпилирует все .proto файлы.

для %% v в object_detection\protos *.proto do (D:\bin\protoc %% v --python_out =.)

Запустите этот пакетный файл из папки models\research. Измените путь к протоку. Надеюсь, это поможет другим, и нам не нужно устанавливать старые версии protoc. Спасибо