日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[图解tensorflow源码] 入门准备工作附常用的矩阵计算工具[转]

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [图解tensorflow源码] 入门准备工作附常用的矩阵计算工具[转] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[圖解tensorflow源碼] 入門準備工作

附常用的矩陣計算工具[轉]

Link: https://www.cnblogs.com/yao62995/p/5773142.html

?tensorflow使用了自動化構建工具bazel、腳本語言調用ccpp的包裹工具swig使用EIGEN作為矩陣處理工具、Nvidia-cuBLAS GPU加速計算庫、結構化數據存儲格式protobuf

Swig

? ???

1. Simplified Wrapper and Interface Generator (SWIG) ,基本思想就是向腳本語言接口公開 C/C++ 代碼。SWIG 允許您向廣泛的腳本語言公開 C/C++ 代碼,包括 Ruby、Perl、Tcl 和 Python。

? ?

參考:

1.?使用SWIG實現Python調用C/C++代碼

??

Bazel

1. bazel假定每個目錄為[package]單元,目錄里面包含了源文件和一個描述文件BUILD,描述文件中指定了如何將源文件轉換成構建的輸出。

? ?


1. name屬性來命名規則,deps屬性來描述規則之間的依賴關系
2. 使用冒號來分隔包名和規則名;如果某條規則所依賴的規則在其他目錄下,就用"//"開頭,如果在同一目錄下,可以忽略包名而用冒號開頭。
依賴關系:

??

3. bazel命令:

? ? ?>?bazel build -c opt?//tensorflow/tools/pip_package:build_pip_package

4. 調試模式:

? ? ?> ?bazel build -c dbg

參考:

1.?安裝bazel

? ?>?yum?install?java-1.8.0-openjdk

? ?>?yum?install?java-1.8.0-openjdk-devel

? ?>?https://github.com/google/bazel/ 下載最新版本bazel_xxx.sh安裝

2.?使用bazel構建系統

? ?

3.?bazel 命令手冊

??

? ?

??

EIGEN

1. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.?http://eigen.tuxfamily.org/??

  • 支持整數、浮點數、復數,使用模板編程,可以為特殊的數據結構提供矩陣操作。比如在用ceres-solver進行做優化問題(比如bundle adjustment)的時候,有時候需要用模板編程寫一個目標函數,ceres可以將模板自動替換為內部的一個可以自動求微分的特殊的double類型。而如果要在這個模板函數中進行矩陣計算,使用Eigen就會非常方便。
  • 支持逐元素、分塊、和整體的矩陣操作。
  • 內含大量矩陣分解算法包括LU,LDLt,QR、SVD等等。
  • 支持使用Intel?MKL加速
  • 部分功能支持多線程
  • 稀疏矩陣支持良好,到今年新出的Eigen3.2,已經自帶了SparseLU、SparseQR、共軛梯度(ConjugateGradient solver)、bi conjugate gradient stabilized solver等解稀疏矩陣的功能。同時提供SPQRUmfPack等外部稀疏矩陣庫的接口。
  • 支持常用幾何運算,包括旋轉矩陣、四元數、矩陣變換、AngleAxis(歐拉角與Rodrigues變換)等等。
  • 更新活躍,用戶眾多(Google、WilliowGarage也在用),使用Eigen的比較著名的開源項目有ROS(機器人操作系統)、PCL(點云處理庫)、Google?Ceres(優化算法)。OpenCV自帶到Eigen的接口。

2. 常用的矩陣計算工具有blas,?cublas(caffe)、atlas、openblas(mxnet)、eigen,還有lapack、mkl(intel)、Armadillo(matlab)

? ?

3. Eigen庫包含 Eigen模塊和unsupported模塊,其中Eigen模塊為official module,unsupported模塊為開源貢獻者開發的,沒有official support。

1.?矩陣運算庫blas, cblas, openblas, atlas, lapack, mkl
2. eigen 參考文檔

https://eigen.tuxfamily.org/dox/

? ?

C++矩陣運算庫推薦

?

protobuf

? ?

1. Protocol Buffers 是一種輕便高效的結構化數據存儲格式,可以用于結構化數據串行化,或者說序列化。它很適合做數據存儲或 RPC 數據交換格式。可用于通訊協議、數據存儲等領域的語言無關、平臺無關、可擴展的序列化結構數據格式。

2. 使用
? ? ? > 編寫.proto文件,編譯后生成 .pb.h / .pb.cc文件

? ? ? >?Writer: SerializeToOstream(), ??Reader: ParseFromIstream()

? ? ? > required:一個格式良好的消息一定要含有1個這種字段;

? ? ? > optional:消息格式中該字段可以有0個或1個值(不超過1個)。

? ? ? > repeated:在一個格式良好的消息中,這種字段可以重復任意多次(包括0次)。相當于java中的List。

3.?

? ?

4. grpc需要理解4個方面(service,stub,channel,observer)

  • service,
  • stub:客戶端調用 stub 對象,所謂 stub 對象就是具有聲明好的方法的 fake object。stub 對象將請求用 protobuf 方式序列化成字節流,用于線上傳輸,到 server 端后調用真正的實現對象處理。
  • channel,指定連接的服務器地址和端口,用于stub連接到service
  • observer,服務端,觀察處理返回和關閉通道

?Protobuf 語法指南

gRPC 入門及源碼分析

??

Stream

Executor?

> google stream executor team: work on parallel programming models for CPUs, GPUs and other platforms.
>?StreamExecutor?is a unified wrapper around the?CUDA?and?OpenCL?host-side programming models (runtimes).?
>StreamExecutor?and?libomptarget?are libraries that are both meant to solve the problem of providing runtime support for offloading computational work to an accelerator device. The libomptarget library is already hosted within the?OpenMP LLVM?subproject, and there is currently a proposal to create another LLVM subproject containing StreamExecutor.?
>?StreamExecutor is currently used as the runtime for the vast majority of Google's internal?GPGPU?applications, and a snapshot of it is included in the open-source?TensorFlow?project, where it serves as the GPGPU runtime.

https://github.com/henline/streamexecutordoc

https://github.com/henline/streamexecutordoc/blob/master/se_and_openmp.rst

? ?

??

TF C++

1. TF源碼安裝:?following the instructions here

2. example: ?tensorflow/cc/tutorials/example_trainer.cc

3. 自定義的op Kernel?tutorial for adding a new op in C++.

4. TF c++ 調試:?debugging Tensorflow's C++ code behind the SWIG interface

? ? ? ? ?>?The simplest interface between Python and C++ is the pure-C API in?tensor_c_api.h

??

?

?

轉載于:https://www.cnblogs.com/xiexiaokui/p/9598375.html

總結

以上是生活随笔為你收集整理的[图解tensorflow源码] 入门准备工作附常用的矩阵计算工具[转]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲 欧美 变态 另类 综合 | 成人一区二区免费视频 | 性欧美大战久久久久久久免费观看 | 国产乱码精品一区二三区蜜臂 | 天天干干 | 亚洲AV无码乱码国产精品色欲 | 色婷婷精品国产一区二区三区 | 嫩草研究院在线 | 国产精品情侣呻吟对白视频 | 欧美激情黄色 | 久久亚洲欧美 | 日剧大尺度床戏做爰 | 一区二区国产在线观看 | 日本免费福利视频 | 丰满少妇一区二区三区专区 | 欧美精品一二 | 91精品久久久久久久久久入口 | 日韩欧美国产亚洲 | 三级福利视频 | 欧美男女啪啪 | 夜夜嗨av一区二区三区免费区 | 又黄又爽的视频在线观看 | 国产视频福利在线观看 | 国产传媒在线播放 | 蜜臀一区二区三区 | 国产色综合网 | 亚洲欧美在线不卡 | 久99久视频 | 亚洲春色av | 国产欧美精品一区二区色综合朱莉 | 国产1区在线 | 无码精品国产一区二区三区免费 | 好看的国产精品 | 国产乱码一区二区三区 | 日本丰满肉感bbwbbwbbw | 欧美一区在线看 | 经典杯子蛋糕日剧在线观看免费 | 欧美人与禽猛交乱配 | 午夜在线观看视频网站 | 日韩网站免费观看 | 少妇2做爰bd在线意大利堕落 | 91传媒在线视频 | av网站免费在线 | 欧美精品啪啪 | 2021狠狠干 | 国内精品久久久久久久 | 亚洲免费av一区二区 | 用力使劲高潮了888av | 成人羞羞在线观看网站 | 中文字字幕第183页 欧美特级一级片 | 久久精品久久久 | 日本少妇xxxx软件 | 午夜精品久久久久久久99 | 国产资源一区 | 香蕉国产精品 | 成人做爰www免费看视频网站 | 红桃视频国产精品 | 亚洲一卡二卡在线 | 亚洲美女性生活视频 | 久久福利网 | 国产精品19p| 免费在线观看网址入口 | 蜜桃av色偷偷av老熟女 | 老司机精品视频在线 | 日韩一区二区三区在线播放 | 精品视频在线免费 | 四虎午夜影院 | 中文在线观看av | 欧美草b| 中国美女一级片 | 一级做a视频| 午夜寂寞自拍 | 高清中文字幕 | 黄色片子免费 | 999久久久 | 亚洲精品久久久久久一区二区 | 欧美日韩视频一区二区 | 亚洲综合欧美 | 日韩在线不卡视频 | 黄色一级片毛片 | 亚洲成人av电影在线 | 精品人妻一区二区三区潮喷在线 | 久草中文在线 | 欧美成人精品一区二区免费看片 | 小香蕉影院 | 色吊丝中文字幕 | 美日韩丰满少妇在线观看 | 黄色片网站免费在线观看 | 美女调教视频 | 国产一区二区视频在线观看 | 色花av| 4438x全国最大成人网 | 成人短视频在线播放 | 女女h百合无遮涩涩漫画软件 | 国产国产乱老熟女视频网站97 | 成人午夜久久 | 高级家教课程在线观看 | 国产精品主播在线 | 全部免费毛片在线播放 |