Używam Keras z Tensorflow jako zaplecza.Keras + Tensorflow i Multiprocessing w Pythonie
Próbuję zapisać model w moim głównym procesie, a następnie załadować/uruchomić (to jest wywołanie model.predict
) w ramach innego procesu.
Obecnie próbuję tylko naiwnego podejścia z dokumentów, aby zapisać/załadować model: https://keras.io/getting-started/faq/#how-can-i-save-a-keras-model.
Więc zasadniczo:
model.save()
w głównym procesiemodel = load_model()
w procesie potomnymmodel.predict()
w procesie potomnym
Jednak to po prostu wisi na wezwanie load_model
.
Poszukiwanie Odkryłem tę potencjalnie pokrewną odpowiedź sugerującą, że Keras może być wykorzystywany tylko w jednym procesie: using multiprocessing with theano, ale nie jestem pewien, czy to prawda (nie można znaleźć zbyt wiele na ten temat).
Czy istnieje sposób na osiągnięcie mojego celu? Wysoko oceniany jest krótki opis lub krótki przykład.
Uwaga: Podjęto próbę podążania wzdłuż przebiegu wykresu do procesu, ale nie udało mi się, ponieważ wydaje się, że wykresów tensorflow nie można doczepić (powiązany wpis SO dla tego tutaj: Tensorflow: Passing a session to a python multiprocess). Jeśli rzeczywiście istnieje sposób na przekazanie wykresu/modelu tensorflow do procesu potomnego, jestem również otwarty na to.
Dzięki!
Marcin, dziękuję bardzo za odpowiedź. Pytanie boczne: powyższe pytanie dotyczące SO jest spowodowane chęcią zrównoleglania prognoz dla jednego modelu w wielu procesach graficznych. Zadałem pytanie SO o tym trochę czasu bez powodzenia: http://stackoverflow.com/questions/42409884/keras-tensorflow-prediction-on-multiple-gpus. Czy mógłbyś coś zrobić? Z góry dziękuję. Daj mi znać, jeśli potrzebujesz więcej szczegółów. –
Muszę rzucić okiem. Jest to również coś, co mnie również interesuje - ale nie wdrożyłem jeszcze takiego rozwiązania. Wdrożyłem proces przypominający, który otrzymuje obraz do przetworzenia przez mieszaninę głębokich CNN-ów i stąd pochodzi mój przykład. –