(五)、深度学习框架源码编译

这篇具有很好参考价值的文章主要介绍了(五)、深度学习框架源码编译。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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-deps

numpy是一个开源的数值计算库,提供了丰富的多维数组和矩阵操作功能,以及数学、逻辑、傅里叶变换等数值计算工具。
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

(五)、深度学习框架源码编译,Linux系统和环境搭建简介,深度学习,人工智能

(五)、深度学习框架源码编译,Linux系统和环境搭建简介,深度学习,人工智能

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 团队会分享一些模型开发和训练的最佳实践,帮助开发者避免常见的陷阱和问题。文章来源地址https://www.toymoban.com/news/detail-656633.html

到了这里,关于(五)、深度学习框架源码编译的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 2.树莓派4B 64位操作系统 从零搭建深度学习项目运行环境

    2.树莓派4B 64位操作系统 从零搭建深度学习项目运行环境

    探索目标 树莓派的系统烧录 树莓派的基础配置 树莓派的开机连接 树莓派的文件传输 树莓派的软件安装 树莓派的运行环境 树莓派的系统备份 测试运行现有模型 1.1 系统选择 1.1.1 Raspbian OS:官方的树莓派操作系统 ​ Raspbian OS 是官方支持的树莓派板卡操作系统。它集成了很多

    2024年01月16日
    浏览(16)
  • 毕业设计:python人脸识别考勤系统 签到系统 深度学习 Flask框架 Dlib库 MySQL数据库 大数据(源码+论文)✅

    毕业设计:python人脸识别考勤系统 签到系统 深度学习 Flask框架 Dlib库 MySQL数据库 大数据(源码+论文)✅

    🍅 大家好,今天给大家分享一个Python项目,感兴趣的可以先收藏起来,点赞、关注不迷路! 🍅 大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。 技术栈: Python语言、MySQL数据库、Flask框架、Echarts可视化、Dlib库、刷脸签到、多

    2024年03月22日
    浏览(13)
  • 毕业设计:基于python人脸识别考勤系统 签到系统 深度学习 Flask框架 Dlib库 MySQL数据库 大数据(源码+论文)✅

    毕业设计:基于python人脸识别考勤系统 签到系统 深度学习 Flask框架 Dlib库 MySQL数据库 大数据(源码+论文)✅

    毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅 感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。

    2024年02月20日
    浏览(12)
  • 小白的Linux系统学习之路——学前准备(了解Linux、搭建Linux环境)

    小白的Linux系统学习之路——学前准备(了解Linux、搭建Linux环境)

    ✨✨欢迎来到T_X_Parallel的博客!!       🛰️博客主页:T_X_Parallel       🛰️专栏 : Linux       🛰️欢迎关注:👍点赞🙌收藏✍️留言       🛰️友友们的支持是本博主更新的动力 怎么和腾讯一样是一只企鹅 Linux,全称GNU/Linux,是一套免费使

    2024年02月07日
    浏览(30)
  • OpenHarmony鸿蒙源码下载编译和开发环境搭建

    OpenHarmony鸿蒙源码下载编译和开发环境搭建

    目录 一、开发环境搭建和源码下载 二、编译 三、总结  一、开发环境搭建 最好是在如Ubuntu18.04以上的系统中搭建,不然有些软件依赖需要解决,加大搭建时间 如gitee中开源OpenHarmony中的文档所示,搭建开发环境,搭建文档网站如下: zh-cn/device-dev/get-code/sourcecode-acquire.md ·

    2024年01月21日
    浏览(37)
  • Linux——ARM交叉编译环境搭建

    Linux——ARM交叉编译环境搭建

    可依据自己当前的环境进行选择下载,官网如下​​​ Downloads | GNU-A Downloads – Arm Developer 我这边选择如下,用于4412开发板的 gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz mkdir  /usr/local/arm tar -xvf gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz 在 vim /root/.bashrc 或 vim /etc/profi

    2024年02月21日
    浏览(14)
  • Linux | Ubuntu配置JDK源码编译环境

    宿主机环境:Windows 11 家庭版 21H2 版本 宿主机操作系统版本:22000.348 虚拟机环境:VMware® Workstation 17 Pro 虚拟机操作系统版本:Ubuntu 22.10 参考:《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》 在 Win 11 家庭版中使用 VMware 可能会产生一些兼容性问题,比如蓝屏、无法

    2024年02月03日
    浏览(10)
  • 嵌入式Linux Qt交叉编译环境搭建

    嵌入式Linux Qt交叉编译环境搭建

    TinkerBoard2主板,BuildRoot根文件系统,package自带的Qt版本为5.14.2,所以安装的版本也是5.14.2 安装的组件看个人需求,我都要了 默认安装路径/opt/Qt5.14.2/ 源码路径/opt/Qt5.14.2/5.14.2/Src/ 安装后选定的打包工具路径/opt/Qt5.14.2/5.14.2/(我的默认有gcc_64和android) 这种方法容易导致version `G

    2024年01月25日
    浏览(15)
  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(14)
  • 利用Docker搭建Linux ARM64架构编译环境

    利用Docker搭建Linux ARM64架构编译环境

    不想折腾交叉编译环境,但是又实在忍不了A53上编译工程的龟速,于是乎就想着是不是可以通过Docker搭一个arm linux开发环境,这样编译好的工程直接拷进A53中就可以运行了。说干就干,踩了一些坑,但是最终还是成功了。这里简单记录一下,你们能不能看懂,就看自己的造化

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包