如何在做小改动时构建tensorflow ?

pgccezyw  于 2022-10-29  发布在  其他
关注(0)|答案(9)|浏览(119)
  • 请确保这是一个构建/安装问题。根据我们的GitHub Policy,我们只解决GitHub上的代码/文档错误、性能问题、功能请求和构建/安装问题。tag:build_template*
    系统信息
  • 操作系统平台和分发版(例如Linux Ubuntu 16.04):Ubuntu 18.04.5版
  • 移动的设备(例如iPhone 8、Pixel 2、Samsung Galaxy),如果问题发生在移动设备上:
  • TensorFlow安装自(源代码或二进制文件):来源
  • TensorFlow版本:2.3.1
  • Python版本:3.6.9
  • 使用virtualenv?pip?conda?进行安装:虚拟环境
  • Bazel版本(如果从源代码编译):
  • GCC/编译器版本(如果从源代码编译):7.5.0
  • CUDA/cuDNN版本:
  • GPU型号和内存:

我知道我可以使用以下命令构建tensorflow :
x1m0n1x
但是这个命令花费了很多时间,我需要在tensorflow的代码中做一些小的修改,并立即检查它们。如何在贡献的同时构建tensorflow?一定有更快的方法。

isr3a4wc

isr3a4wc1#

Bazel保留了编译结果的缓存。每次增量更改都将重用大部分该高速缓存。
您还可以在开发时编译更细粒度的目标,并且仅在最后构建完整的pip包并运行集成测试。
你不需要总是在优化的情况下进行编译,这需要时间。

dl5txlt9

dl5txlt92#

我怎样才能找到并使用这些细粒度的目标呢?你有什么建议吗?
关于优化,您建议删除标志--config=opt -c opt,对吗?

inkz8wg9

inkz8wg93#

BUILD文件指定了所有可能的BUILD目标。bazel query 'deps(....)'还可以列出Bazel在构建deps内的目标之前需要构建的内容。

t9eec4r0

t9eec4r04#

感谢您的回复!
使用指定的目标进行构建后,为了使用新代码运行TensorFlow,我是否还必须运行以下命令:
x1m0n1x
pip install /tmp/tensorflow_pkg/tensorflow-2.3.0-cp38-cp38m-linux_x86_64.whl
就像从源安装一样?
还是仅仅通过构建,就应该在使用TensorFlow时应用更改?

1mrurvl1

1mrurvl15#

如果你想手动测试代码/测试pip包,你必须完全构建pip包并安装它。
但是在开发过程中,您通常只想运行一个小的单元测试。

qacovj5a

qacovj5a6#

我正在使用以下命令(与我第一次从源安装时使用的命令相同):
x1m0n1x
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-2.3.0-cp38-cp38m-linux_x86_64.whl
但在使用TensorFlow时,我没有看到任何差异。我是否使用了正确的命令来构建和安装?

xpcnnkqh

xpcnnkqh7#

是的,这些都是正确的命令。确保你使用的是正确的环境,正确的python/pip组合。

r7xajy2e

r7xajy2e8#

@dimitraka这是一个众所周知的问题。您可以订阅或评论您的经验在tensorflow/build#5

drkbr07n

drkbr07n9#

@迪米特拉卡
您是否可以尝试更新到最新的稳定版本2.6.0,如果问题仍然存在,请告诉我们?

相关问题