从源码编译tensorflow
参考: https://www.tensorflow.org/install/source
tf依赖可以参考官方tf whl包内的信息,解压缩tensorflow-1.15.4-cp36-cp36m-manylinux2010_x86_64.whl:tensorflow-1.15.4.dist-info/METADATA
build tensorflow tag v1.15.4, inside ubuntu18.04 docker container。
环境:
- docker container: ubuntu 18.04.5
- Miniconda
# build tensorflow tag v1.15.4, inside ubuntu18.04 docker container:
create conda environment of python=3.6, and activate it
pip install -U "numpy<1.19.0" #较新的numpy可能会导致tf编译失败
pip install -U wheel
pip install -U keras_preprocessing --no-deps
sudo apt install zip unzip
sudo ./bazel-0.25.2-installer-linux-x86_64.sh
sudo apt install build-essential
cd tensorflow
git checkout -b tag1154 v1.15.4
./configure
bazel --output_user_root=xxx build -s --verbose_failures --local_ram_resources=10240 -j 8 --config=opt //tensorflow/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
bazel的文件会存放在上面的xxx目录中,若未指定该选项则默认~/.cache/bazel/_bazel_$USER/
,见bazel的输出目录说明。
最终生成的tensorflow whl文件在指定的/tmp/tensorflow_pkg目录下。
从源码编译caffe
方法一(未验证):
安装依赖:可以参考 NVIDIA的文档 ,但NVIDIA是为了编译NVCaffe,所以只用来参考。
sudo apt-get install --no-install-recommends build-essential cmake git gfortran libatlas-base-dev libboost-filesystem-dev libboost-python-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev libsnappy-dev python-all-dev python-dev python-h5py python-matplotlib python-numpy python-opencv python-pil python-pip python-pydot python-scipy python-skimage python-sklearn
上面部分库(包括python-*相关库)比较老了,所以未知是否可行。
方法二(已在Ubuntu20.04验证成功):
部分借鉴 https://gist.github.com/nikitametha/c54e1abecff7ab53896270509da80215
目标:
- ubuntu20.04LTS
- 编译 caffe cpu only版本
过程:
conda创建python3.8环境并激活
sudo apt install python3 python3-dev
sudo apt install libopencv-dev python3-opencv (如果caffe不链接OpenCV则不用安装)
sudo apt install libopenblas-dev / libatlas-base-dev
sudo apt install libboost-all-dev
pip install protobuf
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
git clone https://github.com/BVLC/caffe.git
修改CMakeLists.txt,改成CPU ONLY,其余选项视情况能关闭的尽量都关闭。
mkdir build ; cd build ;
cmake .. (本次使用cmake 3.22版本)
make