2016-07-13 21 views
-1

https://petewarden.com/2016/02/28/tensorflow-for-poets/ https://www.tensorflow.org/versions/r0.8/how_tos/image_retraining/index.html https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#docker-installation如何構建tensorflow花示例的網站?

我按照上面的鏈接上 我的Ubuntu 14.04安裝tensorflow花例子。碼頭工人,編譯,學習和 分類命令似乎都工作,幸運的是。

泊塢窗版本:1,11,2巴澤勒版本:0.3.0圖片:/家庭/ tf_files 泊塢窗圖像:gcr.io/tensorflow/tensorflow:latest-devel-gpu

下一步是設置建立一個網站,讓人們上傳 圖片進行測試。我使用LAMP(/ var/www/html,docker外部)。 問題是,PHP(shell_exec)和內部碼頭命令 不在說話。如何解決這個問題?任何輸入是受歡迎的。

+0

你能給出一些更具體的例子說明你正在做什麼以及錯誤是什麼? – ldg

+0

以碼頭內部編譯命令爲例: root @ 63a6491c2514:/ tensorflow#bazel build -c opt --copt = -mavx tensorflow/examples/image_retraining:retrain 它正在工作。但是,在docker之外,shell_exec('bazel build -c opt --copt = -mavx tensorflow/examples/image_retraining:retrain')將不起作用。基本的想法是,當通過瀏覽器上傳圖片時,php會執行inside-docker命令並在瀏覽器上顯示結果。 – user1780176

回答

1

集裝箱化的好處之一是提供隔離以保護您所要做的事情。您需要將PHP安裝在與bazel應用程序相同的容器中,或者找到某種方式來回傳遞數據。從理論上講,您可以找到一些方法來發送或以其他方式使上傳的圖像可用(我不熟悉這些細節 - 即它是否可以通過網絡協議訪問圖像?)。

和你exec命令看起來是這樣的:

了shell_exec(docker exec {bazel-container} bazel build -c opt --copt=-mavx tensorflow/examples/image_retraining:retrain);

其中{bazel-container}是該容器的網絡地址。在bazel容器上使用腳本將使該命令更容易。把你的PHP應用程序放在一個容器中會使網絡更容易。

如果你可以完成所有工作,它可以做你需要做的實驗,但最終你會希望在bazel容器上構建一個更強大的接口,理想的是通過HTTP工作(例如,一個RESTful API)或類似的。

+0

感謝偉大的指導!計算所有細節需要相當長的時間。一些迴應:(1)上傳的圖像:只要它保存在/ home/tf_files裏,分類命令就沒有問題找到它。 (2)PHP容器:我們的LAMP服務器有時候在那裏。處理bazel容器I/O可能更容易,而不是現在移動整個LAMP服務器。 (3)Web前端:在鏈接1中,已經提出了一種android解決方案。我們認爲網絡前端同樣重要。 – user1780176

+0

爲了保存圖像,你可以使'/ home/tf_files'成爲共享卷。 – ldg

+0

要激活碼頭,我們使用$ docker run -it -v/home/tf_files:/ tf_files gcr.io /tensorflow/tensorflow:latest-devel-gpu我想這是一個共享卷。將bazel容器的文本結果發送到PHP的最佳方式是什麼?通過共享音量? – user1780176