1、源码构建与预构建:
源码构建:
源码构建是通过获取软件的源代码,然后在本地编译生成可执行程序或库文件的过程。这种方法允许根据特定需求进行配置和优化,但可能需要较长的时间和较大的资源来编译源代码。
预构建:
预构建是通过从开发者或官方网站下载预先编译好的可执行程序或库文件,然后在本地使用它们的过程。这种方法省去了编译的时间和工作,通常更方便。然而,预构建版本可能没有完全针对特定需求进行优化。
源码构建的优缺点:
优点:
1.可以根据特定需求进行配置、优化和修改。2.可以确保编译的二进制与系统和需求完全匹配。
3.可以进行调试和错误跟踪,有助于自定义和定制。
缺点:
1.需要较长的编译时间和系统资源。
2.对于不熟悉编译过程的用户来说可能较为复杂。
3.编译过程可能会受到依赖项的影响,需要处理依赖项问题。
2、Tensorflow源代码编译安装
TensorFlowi源码构建基本流程:
1、安装依赖:安装构建TensorFlow所需的各种依赖项,包括Python、Bazel构建工具、CUDA、cuDNN、TensorRT等。这些依赖项可能因系统和配置而有所不同。
2、配置编译:在TensorFlowi源码目录中,运行配置脚本以配置编译选项。
3、构建:用Bazelt构建TensorFlow。
4、生成Wheel包:如果希望将TensorFlow打包成Pythonf的Wheelt格式,以便于分发和安装。
5、运行测试(可选):可以运行TensorFlow的单元测试和集成测试,以确保构建的版本没有问题。TensorFlow-安装依赖、编译环境:
确保环境中,已经安装python、pip等工具
pip install -U --user pip numpy wheel
pip install -U--user keras_preprocessing --no-depsnumpy是一个开源的数值计算库,提供了丰富的多维数组和矩阵操作功能,以及数学、逻辑、傅里叶变换等数值计算工具。
wheel是Python的一个二进制包格式,旨在加速包的安装。是一种预构建的软件包格式,可以包含Python模块的代码、依赖项和元数据,以便于分发和安装。
keras_preprocessing是TensorFlow的一个重要子模块,提供了许多用于数据预处理和增强的工具,特别适用于在深度学习任务中准备数据集。
TensorFlow-编译工具bazel
Bazel是一个由Google开发的开源构建工具,旨在支持大型项目的高效构建、测试和部署。它特别适用于构建复杂的软件系统,具有高度的可扩展性和性能优势。Bazel支持多种编程语言,并在TensorFlow等许多大型项目中得到广泛应用。
■构建速度和缓存:使用了增量构建和缓存机制,只编译已更改的部分,从而显著加快构建过程。Bazel还可以共享构建缓存,以避免重复编译相同的依赖项。
■多语言支持:包括但不限于Java、C++、Python、Go、Rust等。这使得可以在一个项目中混合使用不同的语言,而无需为每种语言使用不同的构建工具。
■高度模块化:将项目拆分为小的、可重用的模块,以提高代码的可维护性和可测试性。每个模块都可以拥有自己的构建规侧和依赖项。
■声明式构建:使用BUILD文件来声明构建规则和依赖关系。这种声明式的构建方法使构建过程更加清晰和可管理。
■平台无关性:可以在不同的操作系统上运行,包括Linux、macOS和Windows。详细使用方法可以参考:https:/blog.gmem.cc/bazel-study-note
3、pytorch 源代码编译安装
1、环境准备:
安装 Python:确保的系统中安装了 Python,建议使用支持的版本(通常是 Python 3.7+)。
安装依赖项:如 CMake、NumPy、Ninja 等。可以根据官方文档安装这些依赖项。
2、更新子模块:源代码中可能包含子模块(submodules),往往需要使用以下命令更新子模块才能正常编译:
git submodule update --init --recursive
3、配置编译选项:(可使用 cmake -DCMAKE_INSTALL_PREFIX=<install_dir> 来指定安装目录)。
mkdir build
cd build
cmake ..
4、使用make命令进行编译,make install命令进行安装。
5、运行测试:
在 test 目录下,可以使用以下命令来运行测试:
python run_test.py
这将运行所有的测试套件,包括单元测试、集成测试等。如果需要指定特定的测试模块或测试用例,可以使用命令行参数来过滤测试,
例如:
python run_test.py test_torch.py
将只运行与 test_torch.py 相关的测试。
在测试运行完成后,成功的测试将显示为 "OK",而失败的测试将显示详细的错误信息。
4、caffe源代码编译安装
1、环境准备(这些基本都可以从conda里面安装):
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev
libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install python-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-opencv
2、修改caffe下文件Makefile.config
CPU 和 GPU 支持: 可以通过设置是否启用 CPU 或 GPU 支持来决定构建 Caffe 时是否使用CPU 或 GPU 运算。这通常涉及 USE_CUDNN、USE_NCCL、CPU_ONLY 等选项。
CUDA 和 cuDNN 路径: 如果启用了 GPU 支持,需要指定 CUDA 和 cuDNN 的路径。
BLAS 库: 可以选择使用不同的 BLAS 库,如 OpenBLAS、MKL 或 ATLAS。
Python 路径: 需要指定与 Caffe 集成的 Python 版本和路径。
3、修改caffe下文件Makefile
1.opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
后面加入 opencv_imgcodecs
2. 找到LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
更改最后两项为:
LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl
hdf5_serial
4、编译与测试
make all
Make test
make runtest
5、深度学习框架常用模型仓库
TensorFlow: https://github.com/tensorflow/models
TensorFlow Model Garden 是 TensorFlow 团队维护的一个开源项目,旨在为机器学习社区提供一系列预训练模型、工具、示例和最佳实践,以加速模型开发和研究。这个项目汇集了各种不同类型的模型,涵盖了计算机视觉、自然语言处理、语音识别等多个领域,帮助开发者快速构建和训练自己的模型。
预训练模型: Model Garden 包含了多个预训练模型,包括 TensorFlow 官方发布的模型,以及社区贡献的模型。这些模型可以用作迁移学习的起点,或者可以在特定任务上微调。
模型库: Model Garden 提供了一个模型库,用于查看各种模型的代码、配置文件和文档。这些模型可以帮助开发者了解模型的结构和使用方法。
最佳实践: TensorFlow 团队会分享一些模型开发和训练的最佳实践,帮助开发者避免常见的陷阱和问题。