重新编译tensorflow源代码遇见的问题解决方法

本文解决了一个在尝试编译带有自定义OP的TensorFlow时出现的多个符号链接错误问题。通过重新安装NumPy并清理缓存后,问题得以解决。

今天试了一下tensorflow自定义op,在tensorflow源代码下创建一个自己的op后需要重新编译tensorflow,但是我这次编译出现了如下所示的错误:
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_3kcompat.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/ufunc_api.txt’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/arrayscalars.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/noprefix.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/utils.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/ufuncobject.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_endian.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/ndarrayobject.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_cpu.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_no_deprecated_api.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/multiarray_api.txt’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/_numpyconfig.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/old_defines.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/__ufunc_api.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/__multiarray_api.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_interrupt.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_1_7_deprecated_api.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/halffloat.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/_neighborhood_iterator_imp.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_common.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/ndarraytypes.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/numpyconfig.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_os.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/npy_math.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/arrayobject.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: declared output ‘external/local_config_python/numpy_include/numpy/oldnumeric.h’ is a dangling symbolic link.
ERROR: /home/torstein/.cache/bazel/_bazel_torstein/1f82ba256daa7468e9c0a1514e0b9aa5/external/local_config_python/BUILD:143:1: not all outputs were created or valid.
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use –verbose_failures to see the command lines of failed build steps.

解决方案如下:
如果你装的是pip3请输入如下3个指令。
sudo pip3 install –no-cache-dir –upgrade –force-reinstall –user numpy
sudo pip3 install –no-cache-dir –upgrade –force-reinstall numpy
sudo rm -rf /home/[usrname]/.cache

如果你装的是pip请输入如下3个指令。
sudo pip install –no-cache-dir –upgrade –force-reinstall –user numpy
sudo pip install –no-cache-dir –upgrade –force-reinstall numpy
sudo rm -rf /home/[usrname]/.cache

然后开始重新编译!具体如何编译请看我上一篇文章https://blog.youkuaiyun.com/c3255/article/details/82385939

重新编译 TensorFlow 并配置相应的编译器标志,可以按照以下步骤: 1. 安装 Bazel 构建系统:Bazel 是 TensorFlow 的构建系统,需要先安装它。可以从 Bazel 的官方网站上下载适合自己系统的 Bazel 版本,并按照官方文档进行安装。 2. 下载 TensorFlow 源代码:可以从 TensorFlow 的官方网站上下载 TensorFlow源代码,也可以使用 Git 工具从 TensorFlow 的 GitHub 仓库上 clone 源代码。 3. 配置编译器标志:在编译 TensorFlow 之前,需要先配置编译器标志。可以使用以下命令来配置编译器标志: ``` ./configure ``` 该命令会让用户回答一些问题,以确定编译 TensorFlow 所需的配置信息。其中包括选择编译器、CUDA 支持等等。在回答完所有问题后,会自动生成一个名为 `.bazelrc` 的文件,其中包含了所有配置信息。 4. 编译 TensorFlow:在执行编译命令之前,需要先切换到 TensorFlow 源代码的根目录。然后,可以使用以下命令来编译 TensorFlow: ``` bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package ``` 该命令会编译 TensorFlow,并将其打包成一个 Python 软件包。可以使用以下命令来生成软件包: ``` bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg ``` 该命令会将生成的软件包保存在 `/tmp/tensorflow_pkg` 目录下。 5. 安装 TensorFlow:可以使用以下命令来安装 TensorFlow: ``` pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl ``` 其中 `version-tags` 是版本号,例如 `tensorflow-2.3.0rc2-cp37-cp37m-linux_x86_64.whl`。 以上就是重新编译 TensorFlow 并配置相应的编译器标志的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值