webentwicklung-frage-antwort-db.com.de

protoc object_detection/protos/*. proto: Keine solche Datei oder Verzeichnis

Ich folge dem gefundenen Beispiel hier . Aber immer wenn ich den Befehl "C:/Programme/protoc/bin/protoc" eingebe, object_detection/protos/.proto --python_out =. Ich erhalte die Fehlermeldung object_detection/protos/ .proto: Keine solche Datei oder ein solches Verzeichnis . Ich kann kein Verzeichnis mit dem Namen * .proto erstellen. Ich vermisse also einige grundlegende Informationen, wie das geht. Da ich niemanden finden kann, der sich über dieses Problem beschwert, muss es ziemlich einfach sein ... Ich benutze ein Windows-Betriebssystem.

10
twofair

Für Windows gelöst, seien Sie in " research " und haben den Pfad " protoc ".

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

Viel Glück !

7
flowgrad

Stellen Sie sicher, dass Sie das Verzeichnis in "models\research \" ändern, und versuchen Sie, die Schritte aus dem Lernprogramm mit der Protokollversion 3.4.0 wie im Lernprogramm auszuführen. Ich habe nur mit 3.4.0 für mich gearbeitet. 

meine cmd-Zeile, die funktioniert hat:

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

Ich werde dies zu all diesen Fragen posten, die ich finden kann, damit die Leute es wissen. Ich muss diese Anweisungen später für mich und andere schreiben. 

Folgendes funktioniert und funktioniert nicht so:

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

Das * .proto, das alle Dateien bezeichnet, funktioniert für den Compiler nicht. Wenn SieVersion 3.5verwenden, müssen Sie für jede einzelne Datei angeben.

Hier also, wie es aussehen würde:

  1. Führen Sie cmd aus
  2. Ändern Sie Ihr Verzeichnis in den heruntergeladenen Forschungsordner (können abweichen):

    cd /d C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research
    
  3. Rufen Sie den Speicherort der protroc.exe-Datei ab, die Sie heruntergeladen haben 

    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc 
    
  4. Gehen Sie zum protos-Ordner, um zu wissen, welche Dateien Sie einzeln machen müssen

    C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research\object_detection\protos
    
  5. Beginnen Sie nun, jedes einzelne .proto-Element in diesem Ordner in Cmd zu spammen: 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. Oder Sie könnten es einen Tag anrufen und 3,4 bekommen und ausführen:

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

Lassen Sie mich wissen, ob ich noch etwas klären kann. Ich versuche sehr klar zu sein, damit Idioten wie ich es verstehen können.

4
Noctsol

Ändern Sie das Verzeichnis in Modelle oder Modellmaster von tensorflow Dann müssen Sie die .proto-Dateien von Protobuff kompilieren, indem Sie die folgenden Befehle einzeln ausführen

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

gut in meinem Fall brach der Kopf lange Zeit ....__ das Problem war in protoc Version 3.5 ... es akzeptiert diese Argumente nicht auf WINDOWS ... es wird völlig in Ordnung, wenn Sie herunterladen 3.4. 0 Version, die mit Ihren genauen Argumenten verwendet werden kann:! Protoc object_detection/protos/*. Proto --python_out =.

2
Kamornik Cola

Wenn sich herausstellt, dass Sie den gesamten models/research/object_detection/protos-Teilbaum wie ich vermissen, können Sie ihn separat von https://github.com/tensorflow/models herunterladen. Wenn diese Dateien nicht vorhanden sind, wird derselbe Fehler ausgegeben, d. H. No such file or directory.

1
craq

Gehen Sie auf die Release-Seite protoc und laden Sie die Datei protoc-3.4.0-win32.Zip herunter, extrahieren Sie sie und Sie finden protoc.exe im Verzeichnis bin. Dann muss der Pfad zum Systempfad hinzugefügt werden.

Verschieben Sie diese Option in das Modell-/Forschungsordner-Tensorflow-Modellprojekt

Als Nächstes können Sie den Befehl protoc verwenden.

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

0

Ein kleiner Python-Code, mit dem Sie Protok möglicherweise schneller kompilieren können

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

Ich stand vor dem Problem missing output directive..__ Die Lösung, die sich für mich herausstellte, bestand darin, dass ich die vollständigen Dateinamen ausprobierte, da *.proto nicht funktionierte.

0
dls

Ich habe das gleiche Problem auf Ubuntu 16.04. Wechseln Sie in das Verzeichnis, um dieses Problem zu beheben.

0
Amresh

Die .proto-Dateien sollten sich in tensorflow-models/research/object_detection/protos/ befinden.

Also solltest du zuerst 

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

als gemäß den Installationsanweisungen . Das obige ist ein imaginärer Pfad und verwendet die Windows-Pfadstruktur. Sie sollten es durch den tatsächlichen Pfad auf Ihrem Computer ersetzen. Und wenn Sie sich in diesem Verzeichnis befinden, können Sie Ihren Befehl ausführen:

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

Das obige ist nur ein allgemeines Beispiel. Sie müssen <version> durch Ihre protoc-Version ersetzen.

NOT kopieren und einfügen, da dies nicht direkt auf Ihrem Computer funktioniert. Stattdessen müssen Sie den Pfad der protoc binary auf Ihrem Computer suchen und diesen als Befehl vor object_detection/protos/.proto --python_out=. verwenden.

0

manchmal akzeptiert Windows Cmd keine Platzhalter '*'. Deshalb zeigt es Fehler. Sie können Loop verwenden, um dieses Problem zu lösen ., um Loop in Cmd zu erstellen. https://ss64.com/nt/for.html ref: protoc kann keine Dateien in Windows 7 finden

0
Prashant Shukla

Ich habe den gleichen Fehler Object_detection/protos/.proto: No such file or directory.

Dieses Problem wird gelöst, wenn ich Protocol Buffers v3.4.0 verwende.

Stellen Sie sicher, dass Sie sich in models-master\research befinden, und verwenden Sie dann den Befehl als:

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

0
susan097

Dies ist, was ich gemacht habe und ich konnte mit der Version 3.4 und 3.6 unter Windows 7 Professional kompilieren

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

Ich verwende protoc-3.6.1-win32.Zip .. Unter Windows

Erstellt eine Batchdatei, die alle .proto-Dateien kompiliert.

für %% v in object_detection\protos * .proto do (D:\bin\protoc %% v --python_out =.)

Führen Sie diese Batchdatei im Ordner models\research aus. Ändern Sie den Protokollpfad . Hoffen Sie, dass dies anderen hilft, und wir müssen keine älteren Versionen von protoc . Installieren. Vielen Dank

0
Shishir Vikrant

Hallo allerseits, so konnte ich diesen Fehler lösen, als ich die Objekterkennung mit Tensorflow lernte:

SCHRITTE:

1- Um das 64-Bit-System von Google Protobuf für Windows 10 herunterzuladen, rufen Sie diesen Link auf. https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0 und installieren Sie "protoc-3.4.0-win32.Zip". (Hinweis - Installieren Sie nicht protoc-3.6.0).

2- Laden Sie die Modelldatei von diesem Link herunter. https://github.com/tensorflow/models

3. Jetzt müssen Sie die Protobuf-Kompilierung mit dem Befehl Prompt mit Hilfe des Suchverzeichnisses ausführen:

4-First Get in das Forschungsverzeichnis: cd C:\Users\Ankit\tensorflow\models\research und drücken Sie die Eingabetaste //, nur ein Beispiel

5-Dann führe diesen Schritt sofort nach dem obigen Schritt aus:

"C:\Benutzer\Ankit\Desktop\Tensorflow\protbuf\bin\protoc.exe" object_detection/protos/*. Proto --python_out =. und drücken Sie die Eingabetaste (zwischen Objekt und "Zeichen ist ein Leerzeichen vorhanden und dieses wird in eine Zeile geschrieben)

6-Hinweis: Wechseln Sie zum Ordner object_detection/protos. Wenn .py-Dateien vorhanden sind, haben Sie die Kompilierung Ihrer .proto-Dateien erfolgreich abgeschlossen

DANKE DIR

0
Rachit