2017-03-07 111 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导入路径 –