protoc object_detection / protos / *. proto: no existe tal archivo o directorio

Estoy siguiendo el ejemplo encontrado aquí . Pero siempre que ingrese el comando “C: / Archivos de progtwig / protoc / bin / protoc” object_detection / protos / .proto –python_out =. Recibo un error que dice object_detection / protos / .proto: no existe tal archivo o directorio. No puedo crear un directorio llamado * .proto. Así que me falta información fundamental sobre cómo hacer esto. Como no puedo encontrar a nadie más quejándose de este problema, debe ser bastante simple. Estoy usando un sistema operativo Windows.

Resuelto para Windows, estar en ” investigación ” y tener el ” protoc ” en la ruta, entonces esto funcionará:

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

Buena suerte !

Asegúrese de cambiar el directorio a “models \ research \” e intente seguir los pasos del tutorial utilizando la versión 3.4.0 de Protoc, al igual que el tutorial. Solo trabajé para mí usando 3.4.0.

Mi línea de cmd que funcionó:

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

Voy a publicar esto en todas estas preguntas que puedo encontrar para que la gente lo sepa. Tengo que escribir estas instrucciones para mí y para otros más tarde de todos modos.

Lo siguiente funciona y no funciona de una manera:

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

El * .proto que designa todos los archivos no funciona para el comstackdor. Si está utilizando la versión 3.5 , debe especificar cada archivo individual .

Así que aquí es como se vería:

  1. Ejecutar cmd
  2. cambie su directorio a la carpeta de investigación que descargó (puede diferir):

     cd /d C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research 
  3. Obtenga la ubicación del archivo protroc.exe que descargó

     C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc 
  4. Vaya a la carpeta de protos para saber qué archivos necesita hacer individualmente

     C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research\object_detection\protos 
  5. Ahora comience a enviar spam a cada elemento .proto individual en esa carpeta en 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. O puedes llamarlo un día y obtener 3.4 y ejecutar:

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

Déjame saber si puedo aclarar un poco más. Intento ser muy claro para que los idiotas como yo puedan entender.

cambie el directorio a modelos o modelo maestro de tensorflow y luego compile los archivos .proto de protobuff utilizando los siguientes comandos que se ejecutan uno por uno

 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 

Bueno, en mi caso me rompí la cabeza por mucho tiempo. El problema estaba en la versión 3.5 de Protoc. No acepta estos argumentos en WINDOWS. Funcionará completamente bien si descarga la versión 3.4.0 que se puede usar. con sus argumentos exactamente:! protoc object_detection / protos / *. proto –python_out =.

Si resulta que te estás perdiendo el models/research/object_detection/protos como yo, puedes descargarlo por separado desde https://github.com/tensorflow/models . No tener estos archivos dará el mismo error, es decir, No such file or directory .

Los archivos .proto deben estar en tensorflow-models/research/object_detection/protos/ .

Así que primero debes

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

Según las instrucciones de instalación . Lo anterior es una ruta imaginaria y utiliza la estructura de la ruta de Windows. Debe reemplazarlo con la ruta real en su computadora. Y cuando estés en ese directorio, puedes ejecutar tu comando:

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

De nuevo, lo anterior es solo un ejemplo general. Tendrás que reemplazar con tu versión protoc .

NO copie y pegue lo anterior, ya que no funcionará directamente en su máquina. En su lugar, debe encontrar la ruta del binario protoc en su computadora y usarla como comando antes de object_detection/protos/.proto --python_out=.

A veces, Windows Cmd no acepta el comodín ‘*’. Es por eso que muestra error. Puedes usar loop para resolver este problema. Para crear Loop en Cmd checkout este enlace. https://ss64.com/nt/for.html ref: protoc no puede encontrar archivos en Windows 7

Me enfrenté a la cuestión de missing output directive . La solución que funcionó para mí fue que probé los nombres de archivo completos ya que *.proto no estaba funcionando.

Tengo el mismo problema en ubuntu 16.04. Cambie el directorio a la investigación y ahora este archivo falta problema resuelto.

Vaya a la página de versiones de protoc y descargue protoc-3.4.0-win32.zip , extráigalo y encontrará protoc.exe en el directorio bin. entonces es necesario agregar una ruta a la ruta del sistema.

Mover esto a los modelos / carpeta de investigación proyecto de modelo de tensorflow

A continuación, puede utilizar el comando protoc.

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

Un pequeño código de Python que puede ayudarte a comstackr protoc más rápido.

 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) 

Esto es lo que hice y pude comstackr con las versiones 3.4 y 3.6 en 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=.) 

Tengo el mismo error Object_detection/protos/.proto: No such file or directory.

Esto se resuelve cuando uso Protocol Buffers v3.4.0 .

Asegúrese de estar dentro de models-master\research y luego, use el comando como:

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

Estoy usando protoc-3.6.1-win32.zip .. En Windows

Creó un archivo por lotes que comstackrá todos los archivos .proto.

para %% v en object_detection \ protos * .proto do (D: \ bin \ protoc %% v –python_out =.)

Ejecute este archivo por lotes desde la carpeta models \ research. Cambia el camino del protoc. Espero que esto ayude a otros y no necesitamos instalar versiones anteriores de protoc. Gracias

Hola a todos, así fue como pude resolver este error mientras aprendía sobre la detección de objetos utilizando tensorflow:

PASOS:

1- Para descargar el sistema Google Protobuf para Windows 10 de 64 bits, diríjase a este enlace. https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0 e instale “protoc-3.4.0-win32.zip”. (Consejo: no instale protoc-3.6.0)

2- Descargar el archivo de modelos desde este enlace. https://github.com/tensorflow/models

3.Ahora debe ejecutar la comstackción de protobuf en el símbolo del sistema con la ayuda del directorio de investigación:

4-Primero ingrese al directorio de investigación: cd C: \ Users \ Ankit \ tensorflow \ models \ research y presione Entrar // solo un ejemplo

5-Luego haz este paso inmediatamente después del paso anterior:

“C: \ Users \ Ankit \ Desktop \ Tensorflow \ protbuf \ bin \ protoc.exe” object_detection / protos / *. Proto –python_out =. y presione Entrar (hay espacio entre el objeto y el signo “y esto se escribe en una línea)

6-Nota: Vaya a la carpeta object_detection / protos, y si hay archivos .py, ha completado con éxito la comstackción de sus archivos .proto

GRACIAS