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

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

 twofair29 сент. 2017 г., 20:41
ОБНОВЛЕНИЕ: Таким образом, * .proto ищет любой файл с расширением Proto. Но в этой папке их нет. В руководстве говорится, что нужно перейти в папку master-model, но protos находится в папке research / object_detection / protos. Поэтому я изменил вход в эту папку, но теперь я получаю сообщение об ошибке, указывающее, что директивы вывода нет. Я дал командной строке полный путь, и это не сработало. Я не уверен, чего он хочет.

Ответы на вопрос(16)

затем вы должны скомпилировать .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
 Yaswanth Kumar30 июл. 2018 г., 05:48
protoc --python_out=. .\object_detection\protos\graph_rewriter.proto is missing

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

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

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

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

проток объект_обнаружение / protos / *. proto --python_out =.

Object_detection/protos/.proto: No such file or directory.

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

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

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

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

вот как я смог решить эту ошибку, узнав об обнаружении объектов с помощью 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

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

.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=.

что я сделал, и я мог скомпилировать с 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=.)

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

моя строка cmd, которая работала:

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

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

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

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

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

ание, и теперь проблема с отсутствующим файлом решена.

исследовательская работаи иметьprotocПростите в пути, тогда это будет работать:

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

Удачи !

 PHPirate05 окт. 2018 г., 16:54
Это работает и с версией> = 3.5 и в одну строку, отлично!

который может помочь вам быстрее скомпилировать 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)

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

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

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

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

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

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

Запустить cmd

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

cd /d C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research

Получите расположение файла protroc.exe, который вы скачали

C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc 

Перейдите в папку protos, чтобы вы знали, какие файлы вам нужно делать индивидуально

C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research\object_detection\protos

Теперь начните спамить каждый отдельный элемент .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

Или вы можете назвать это день и получить 3.4 и запустить:

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

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

 anand_v.singh30 янв. 2019 г., 14:06
3.4 трюк спасибо, почесал голову в течение 30 минут
 Soumya Boral24 июл. 2018 г., 22:11
Однострочная команда не работает. Однако мы можем сделать это индивидуально, как описано в 5.
 Soumya Boral24 июл. 2018 г., 21:59
У меня есть CD в / models / research /, а затем я запустил "C: / Program Files / protoc / bin / protoc.exe" object_detection / protos / *. Proto --python_out =. Перейти к следующей ошибке Неверный синтаксис имени файла, имени каталога или метки тома.

Ваш ответ на вопрос