2017-03-07 79 views
0

我有一個使用openCV和tensorflow的項目。我克隆了tensorflow源並在源文件中構建了一些文件,例如label_image和image_retrain。將來,我打算使用label_image中的代碼並將它與一些openCV代碼合併,並從那裏構建它(我是否需要構建它?)。無論如何,當我將我的項目上傳到github幷包含tensorflow文件夾(我想要更改)時,文件夾會以灰色顯示的子模塊上傳,因爲tensorflow文件夾中的.git文件指向github上的tensorflow源。我可以安全地刪除這個,以便我可以將文件夾上傳到我的github,並且可以這樣做,而不會影響未來的bazel版本?從tensorflow遠程控制.git可以嗎?

+0

是的,沒問題。 Git只是用來管理版本控制。如果你不關心TF版本,你可以刪除Git文件夾。請注意,這將使以後升級TF變得困難...... Git子模塊確實是最好的選擇。 –

+0

@EricPlaton作爲之前沒有使用子模塊的人,這是否允許我在未與未來的TF版本衝突的情況下進行修改和構建,還是會讓我自己的分支變得最好? –

+0

當目標模塊(TF在這裏)只是一個您不會修改的依賴項時,子模塊是最好的。子模塊指定一個存儲庫和一個提交哈希,這樣你就知道你的代碼依賴於什麼確切的版本,並且你可以控制該版本(即在你想要的時候升級)。如果您需要修改代碼,升級等時可能會遇到子模塊 - - 仍然可行(不推薦)。 –

回答

1

就Bazel而言,它並不關心你的子目錄是一個git目錄,或者只是出售,所以你應該安全地移除TensorFlow的.git目錄並從git列表中移除tensorflow目錄子模塊(請參閱您的.gitmodules文件)

+0

謝謝。雖然我有你在這裏,如果我在另一個程序中包含來自label_image.py(我使用bazel構建的代碼)的代碼,比如說example.py,我還必須使用bazel來構建它嗎? –

+0

從技術上講,沒有必要使用Bazel進行Python導入,但您必須添加良好的導入路徑。最好的可能是將py_binary的runfiles目錄(如此bazel-bin/pkg/label.runfiles)添加到您的Python導入路徑 –