安装基本工具
宁滥毋缺
pacman -S --needed base-devel
pacman -S --needed vim tar wget unzip protobufpacman -S --needed mingw-w64-x86_64-cmake \mingw-w64-x86_64-gcc \mingw-w64-x86_64-toolchain \mingw-w64-x86_64-boost \mingw-w64-x86_64-ccache \mingw-w64-x86_64-eigen3 \mingw-w64-x86_64-gcc-libgfortran \mingw-w64-x86_64-gtk3 \mingw-w64-x86_64-julia \mingw-w64-x86_64-ogre3d \mingw-w64-x86_64-python \mingw-w64-x86_64-python2 \mingw-w64-x86_64-python-pip \mingw-w64-x86_64-python-numpy \mingw-w64-x86_64-vtk
pacman -S --needed mingw-w64-x86_64-libpng \mingw-w64-x86_64-libjpeg \mingw-w64-x86_64-libtiff \mingw-w64-x86_64-libwebp
pacman -S --needed mingw-w64-x86_64-dlib \mingw-w64-x86_64-ffmpeg \mingw-w64-x86_64-harfbuzz \mingw-w64-x86_64-lapack \mingw-w64-x86_64-openblas \mingw-w64-x86_64-opencl-clhpp \mingw-w64-x86_64-opencl-headers \mingw-w64-x86_64-opencl-icd \mingw-w64-x86_64-openmp
安装Bazel
不同tensorflow版本对应的Bazel版本是不同的,提前确定好。
对于 tensorflow 2.14.0,下载安装 Windows 版本 bazel 6.1.2,复制到 C:/Windows/system32 目录或 D:/msys64/mingw64/bin 目录下,改名为 bazel.exe
wget https://github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-windows-x86_64.exe## 国内镜像
wget https://hub.nuaa.cf/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-windows-x86_64.execp bazel-6.1.2-windows-x86_64.exe /mingw64/bin/bazel.exe
下载 tensorflow
git 克隆后切换到指定版本
git clone --recursive https://github.com/tensorflow/tensorflow.git
cd tensorflow
# switch to the branch you want to build
git checkout r2.14 # r1.9, r1.10, etc.
或下载源码包并解压
wget https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.14.0.zip## 国内镜像
wget https://hub.nuaa.cf/tensorflow/tensorflow/archive/refs/tags/v2.14.0.zip## 解压
unzip v2.14.0.zip
进入tensorflow 目录,编译 & 安装
cd tensorflow-2.14.0./configure ## 和执行 python configure.py 效果一样## tensorflow:libtensorflow_cc.so
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package## build install python-package
bazel-bin/tensorflow/tools/pip_package/build_pip_package package/20230912## remove old version and install new package
pip uninstall tensorflow
pip install package/20230912/tensorflow-*.whl
问题:
github下载超时
将bazel脚本中 github.com链接换成国内github 镜像,加速下载,这里我使用hub.yzuu.cf。
sed -i -e 's#https:\/\/github\.com#https://hub.yzuu.cf#g' \*/*.bzl */*/*.bzl */*/*/*.bzl */*/*/*/*.bzl
但是部分 bazel 脚本会将 github URL 替换成 镜像站 URL。
https://github.com/...........
--> https://storage.googleapis.com/mirror.tensorflow.org/github.com/..........
这会造成 https://hub.yzuu.cf/.......... 被转换成 https://storage.googleapis.com/mirror.tensorflow.org/hub.yzuu.cf/...........
所以,当发现这种错误引起的下载失败的话,再将 github镜像 url 转换回原url,继续编译。
sed -i -e 's#https\:\/\/hub\.yzuu\.cf#https://github.com#g' */*.bzl */*/*.bzl */*/*/*.bzl */*/*/*/*.bzl
pip下载超时
可以看看 pip有没有设置镜像URL,如果没有,设置到镜像站,我选用清华镜像站
pip config get global.index-url
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
报错:用户没有权限
执行 os.symlink(target, link_name)时,报告用户没有权限。我即使以管理员执行 msys2也无法解决这个问题。
最后 直接用管理员账号登录,重新准备所有环境才解决
报错:Couldn't find undname.exe under。。。
一般是使用的 MSVC版本不合适,我安装 VS2017 后这个问题被解决
参考: Visual Studio Community 2017 社区版(免费版)
简体中文版下载
BAZEL_VC does not work when vs2019 and vs2022 exist on windows 11. · Issue #14232 · bazelbuild/bazel · GitHub
Auto-Configuration Error: Couldn't find undname.exe under C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\ · Issue #31608 · tensorflow/tensorflow · GitHub