web-dev-qa-db-fra.com

protoc object_detection/protos/*. proto: Aucun fichier ni répertoire de ce type

Je suis l'exemple trouvé ici . Mais chaque fois que j'entre la commande "C:/Programmes/protocole/bin/protocole" object_detection/protos/.proto --python_out =. Je reçois une erreur indiquant object_detection/protos/ .proto: Aucun fichier ni répertoire de ce type . Je ne peux pas créer de répertoire nommé *. Il me manque donc des informations fondamentales sur la manière de procéder. Étant donné que je ne trouve personne se plaindre de ce problème, cela doit être assez simple… .. J'utilise un système d’exploitation Windows.

10
twofair

Résolu pour Windows, être dans ' research ' et avoir le chemin ' protoc ', alors cela fonctionnera

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

Bonne chance !

7
flowgrad

Assurez-vous de changer le répertoire en "modèles\research \" et essayez de suivre les étapes du tutoriel à l'aide du protocole version 3.4.0, tout comme le tutoriel. Je n'ai travaillé que pour moi en utilisant 3.4.0. 

ma ligne de commande qui a fonctionné:

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

Je vais poster ceci sur toutes ces questions que je peux trouver pour que les gens sachent. De toute façon, je dois écrire ces instructions pour moi-même et les autres plus tard. 

Ce qui suit fonctionne et ne fonctionne pas en quelque sorte:

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

Le * .proto désignant tous les fichiers ne fonctionne pas pour le compilateur. Si vous utilisezversion 3.5, vous devez spécifier chaque fichier individuel.

Alors voici ce à quoi cela ressemblerait:

  1. Exécuter cmd
  2. remplacez votre répertoire par le dossier de recherche que vous avez téléchargé (peut différer):

    cd /d C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research
    
  3. Obtenir l'emplacement du fichier protroc.exe que vous avez téléchargé 

    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc 
    
  4. Allez dans le dossier protos pour savoir quels fichiers vous devez faire individuellement

    C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research\object_detection\protos
    
  5. Maintenant, commencez à spammer chaque élément .proto individuel de ce dossier dans 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. Ou vous pouvez l'appeler un jour et obtenir 3.4 et exécuter:

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

Faites-moi savoir si je peux clarifier un peu plus. J'essaie d'être très clair pour que des idiots comme moi puissent comprendre.

4
Noctsol

changez le répertoire en modèles ou maître de modèle de tensorflow Ensuite, vous devez compiler les fichiers .proto de protobuff à l'aide des commandes suivantes, exécutées une par une

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
3
Aadhar Bhatt

bien dans mon cas a cassé la tête longLong time ... le problème était dans le protocole version 3.5 ... il n'accepte pas ces arguments sur WINDOWS ... cela fonctionnera complètement bien si vous allez télécharger 3.4. 0 version qui peut être utilisée avec vos arguments exacts:! Protoc object_detection/protos/*. Proto --python_out =.

2
Kamornik Cola

S'il s'avère que vous manquez tout le sous-arbre models/research/object_detection/protos comme moi, vous pouvez le télécharger séparément à partir de https://github.com/tensorflow/models . Ne pas avoir ces fichiers donnera la même erreur, à savoir No such file or directory.

1
craq

Accédez à la page protoc releases et téléchargez le fichier protoc-3.4.0-win32.Zip, extrayez-le et localisez protoc.exe dans le répertoire bin. il faut ensuite ajouter chemin d'accès au chemin d'accès système.

Déplacez ceci vers le modèle/dossier de recherche projet de modèle tensorflow

Ensuite, vous pouvez utiliser la commande protoc.

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

0
Chamod Pathirana

Un peu de code python qui peut vous aider à compiler le protocole plus rapidement

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)
0
Constanza Garcia

J'ai fait face au problème de missing output directive. La solution qui a fonctionné pour moi a été d'essayer les noms de fichiers complets car *.proto ne fonctionnait pas.

0
dls

J'ai le même problème sur Ubuntu 16.04. Changer de répertoire pour rechercher et maintenant ce problème de fichier manquant résolu.

0
Amresh

Les fichiers .proto doivent être en tensorflow-models/research/object_detection/protos/.

Donc, vous devriez d'abord 

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

comme selon les instructions d'installation . Ce qui précède est un chemin imaginaire et utilise la structure de chemin Windows. Vous devriez le remplacer par le chemin réel sur votre ordinateur. Et lorsque vous êtes dans ce répertoire, vous pouvez exécuter votre commande:

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

Encore une fois, ce qui précède n’est qu’un exemple général. Vous devrez remplacer <version> par votre version protoc.

Ne PAS copiez-collez ce qui précède, car cela ne fonctionnera pas directement sur votre ordinateur. Au lieu de cela, vous devez rechercher le chemin du binaire protoc binaire sur votre ordinateur} _ et utiliser celui-ci comme commande avant object_detection/protos/.proto --python_out=.

0

parfois, Windows Cmd n'accepte pas le caractère générique '*'. c'est pourquoi il montre une erreur. vous pouvez utiliser boucle pour résoudre ce problème . pour créer une boucle dans Cmd checkout ce lien. https://ss64.com/nt/for.html ref: protoc ne peut pas trouver les fichiers dans Windows 7

0
Prashant Shukla

J'ai la même erreur Object_detection/protos/.proto: No such file or directory.

Ceci est résolu lorsque j'utilise Protocol Buffers v3.4.0 .

Assurez-vous d'être à l'intérieur de models-master\research, puis utilisez la commande comme suit:

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

0
susan097

C’est ce que j’ai fait et je pourrais compiler avec les versions 3.4 et 3.6 sous 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=.)
0
Ram Ramesh

J'utilise protoc-3.6.1-win32.Zip .. Sous Windows

Création d'un fichier de commandes qui compilera tous les fichiers .proto.

pour %% v dans object_detection\protos * .proto do (D:\bin\protoc %% v --python_out =.)

Exécutez ce fichier de commandes à partir du dossier models\research. Ne changez pas le chemin du protocole . J'espère que cela aidera les autres et nous n’aurons pas besoin d’installer les anciennes versions de protocole . Merci.

0
Shishir Vikrant

Bonjour à tous, voici comment j'ai pu résoudre cette erreur en apprenant la détection d'objets à l'aide de tensorflow:

PAS:

1- Pour télécharger le système Google Protobuf pour Windows 10 64 bits, allez sur ce lien. https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0 et installez «protoc-3.4.0-win32.Zip». (Conseil - n'installez pas le protocole 3.6.0)

2- Téléchargez le fichier de modèles à partir de ce lien. https://github.com/tensorflow/models

3.Vous devez maintenant exécuter la compilation de protobuf dans la commande Invite à l'aide du répertoire de recherche:

4-Premier accès au répertoire de recherche: cd C:\Users\Ankit\tensorflow\models\research et appuyez sur Entrée // juste un exemple

5-Ensuite, faites cette étape immédiatement après l'étape ci-dessus:

"C:\Users\Ankit\Desktop\Tensorflow\protbuf\bin\protoc.exe" détection_objet/protos/*. Proto --python_out =. et appuyez sur Entrée (il y a un espace entre objet et "et le signe est écrit sur une seule ligne)

6-Note: Allez dans le dossier object_detection/protos, et s’il existe des fichiers .py, vous avez terminé la compilation de vos fichiers .proto.

JE VOUS REMERCIE

0
Rachit