Tensorflow hat Queues, die Streaming unterstützen, so dass Sie nicht die vollständigen Daten im Speicher laden müssen. Aber sie unterstützen nur das Lesen von Dateien auf dem gleichen Server standardmäßig. Das eigentliche Problem ist, dass Sie Daten von einem anderen Server laden möchten. Ich kann mir folgende Möglichkeiten vorstellen:
- Zeigen Sie Ihre Bilder mit einem REST-Service an. Schreiben Sie Ihren eigenen Warteschlangenmechanismus in Python und lesen Sie diese Daten (mit Urlib oder etwas) und füttern Sie es an Tensorflow placeholders.
Statt Python-Warteschlangen (wie oben) können Sie auch Tensorflow-Warteschlangen verwenden (siehe answer), obwohl es etwas komplizierter ist. Der Vorteil besteht darin, dass Tensorflow-Warteschlangen mehrere Kerne verwenden können, was im Vergleich zu normalen Python-Multithread-Warteschlangen eine bessere Leistung bietet.
Verwenden Sie eine Netzwerkverbindung, um Ihr Betriebssystem zu glauben, dass sich die Daten auf demselben Computer befinden.
Denken Sie auch daran, wenn diese Art von verteilten Setup verwenden, werden Sie immer Netzwerk-Overhead (Zeit für die aufgenommenen Bilder von Server 1 bis 2 übertragen werden) entstehen, die Ihre Ausbildung durch eine Menge verlangsamen. Um dem entgegenzuwirken, müssen Sie einen Multithreading-Warteschlangenmechanismus mit Fetch-Execute-Überlappung erstellen, was sehr aufwändig ist. Eine einfachere Möglichkeit IMO ist es, die Daten einfach auf Ihren Trainingscomputer zu kopieren.
Eine Datei zu haben ist nicht einfacher, wenn Ihr Trainingssatz nicht resident ist. – dfrankow