色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用張量提升內存使用效率

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-19 17:26 ? 次閱讀

注:本文轉自賽靈思中文社區論壇,源文鏈接在此。本文原作者為XILINX工程師

以下為個人譯文,僅供個人學習記錄參考之用,如有疏漏之處,還請不吝賜教。

在數據處理中,對原始數據進行重塑或重新排序并創建多個副本是很常見的行為。無論執行任何新步驟,都會創建新副本。隨著程序的增大,占用的內存也會增大,我幾乎從未考慮過這個問題,直到遇到了“內存不足”錯誤。

張量 (tensor) 的神奇之處在于多個張量可引用同一存儲空間,從而顯著提升內存使用效率。

在下一篇的文章中,我將聊一聊張量所具有的更神奇的屬性,即跟蹤上級操作,但在本文中,我將主要介紹內存優化方面的內容。

張量 (tensor) 的神奇之處在于多個張量可以引用同一存儲空間(即包含給定類型的數字的連續內存區塊)。此行為由 torch.storage 進行管理。

每個張量都包含 .storage 屬性,用于顯示內存中存儲的張量內容。

在下一篇的文章中,我將聊一聊張量所具有的更神奇的屬性,即跟蹤上級操作,但在本文中,我將主要介紹內存優化方面的內容。

注:全新 Vitis AI 1.2 發行版將首次為 PyTorch 提供支持。本文對于新增對此熱門框架的支持表示祝賀,并提供了 1 個 PyTorch 專用的 Jupyter Notebook 格式示例。

輸入 [1]:

import torch
a = torch.randint(0, 9, (5,3))
a

輸出 [1]:

tensor([[4, 1, 6],

[0, 8, 8],

[1, 2, 1],

[0, 5, 7],

[0, 0, 7]])

輸入 [2]:

a.storage()

輸出 [2]:

4

1

6

0

8

8

1

2

1

0

5

7

0

0

7

[torch.LongStorage of size 15]

輸入 [3]:

a.shape

輸出 [3]:

torch.Size([5, 3])

我們可能需要對原始“a”張量進行轉置 (transpose) 和平展 (flatten) 處理。

何必為了相同數據浪費雙倍內存?哪怕數據只是形狀 (shape) 不同,也沒有必要。

輸入 [4]:

b = torch.transpose(a, 0, 1)
b

輸出 [4]:

tensor([[4, 0, 1, 0, 0],

[1, 8, 2, 5, 0],

[6, 8, 1, 7, 7]])

a 和 b 確實是指向相同存儲空間的張量。

兩者表現方式不同,原因在于我們使用 stride 函數指令其按不同順序讀取該存儲空間。

b 的 stride 值為 (1,3),即讀取存儲空間時,每隔 1 個元素都必須跳至下一行,并且每隔 3 個元素必須跳至下一列。

輸入 [5]:

b.stride(), a.stride()

輸出 [5]:

((1, 3), (3, 1))

我們可以從 a 或 b 訪問數據,或者也可以從原始存儲空間直接訪問數據。

但如果從存儲空間訪問,則讀取的值將不再是張量。

輸入 [6]:

a[1,2], b[2,1], a.storage()[5], b.storage()[5]

輸出 [6]:

(tensor(8), tensor(8), 8, 8)

現在,令我感到疑惑不解的是,我發現這些張量的值神奇般地自行發生了改變:

更改 a 時,b 也變了。

輸入 [7]:

a[0,0] = 10
b[0,0]

輸出 [7]:

tensor(10)

發生這種狀況的原因是因為,從內存角度來看,張量即經過排序的存儲空間表示法。

從同一存儲空間生成的 2 個張量并非獨立張量,而且我必須牢記的是,當我每次更改 1 個張量后,指向相同存儲空間的所有其它張量也都會被修改。

可見,即使高效的內存利用方式也難免有其缺點!

子集

通過原始數據的子集仍然能夠有效利用內存。

新的張量仍然指向原始存儲空間的子集。

輸入 [8]:

c = a[0:2, 0:2]
c

輸出 [8]:

tensor([[10, 1],

[ 0, 8]])

輸入 [9]:

c[0,0]=77
a

輸出 [9]:

tensor([[77, 1, 6],

[ 0, 8, 8],

[ 1, 2, 1],

[ 0, 5, 7],

[ 0, 0, 7]])

inplace 運算符

inplace 運算符即無需創建張量副本就可以直接對存儲空間進行操作的函數。這些運算符通常具有易于識別的名稱且以下劃線結尾。

輸入 [10]:

a.zero_()
b

輸出 [10]:

tensor([[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 0]])

張量克隆

如果確實需要 1 個獨立的新張量,可以對其進行克隆。

這樣也會創建新的存儲空間。

輸入 [11]:

a_clone = a.clone()
a_clone[0,0] = 55
a_clone

輸出 [11]:

tensor([[55, 0, 0],

[ 0, 0, 0],

[ 0, 0, 0],

[ 0, 0, 0],

[ 0, 0, 0]])

輸入 [12]:

a

輸出 [12]:

tensor([[0, 0, 0],

[0, 0, 0],

[0, 0, 0],

[0, 0, 0],

[0, 0, 0]])

為連續張量重組存儲空間

部分函數僅適用于連續張量。

對 a 進行轉置時,通過在 b 中分配來自存儲空間的非連續矩陣值,生成了新的張量。

輸入 [13]:

a.is_contiguous()

輸出 [13]:

True

輸入 [14]:

b.is_contiguous()

輸出 [14]:

False

我們可將 b 設為連續張量,但這將導致 b 生成經過重組的新存儲空間,從而導致 a 和 b 永遠無法成為獨立張量:

輸入 [15]:

b = b.contiguous()
b[0,0] = 18
a[0,0]

輸出 [15]:

tensor(0)

輸入 [16]:

b.is_contiguous()

輸出 [16]:

True

輸入 [17]:

a.is_contiguous()

輸出 [17]:

True

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7239

    瀏覽量

    90976
  • 存儲
    +關注

    關注

    13

    文章

    4499

    瀏覽量

    87054
  • pytorch
    +關注

    關注

    2

    文章

    809

    瀏覽量

    13756
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    小程序開發必須知道的5個技巧:提升效率與用戶體驗的權威指南

    提升1秒加載速度可降低7%的用戶流失。 交互流暢性:利用微信小程序的setData合并更新機制,減少頻繁渲染導致的卡頓,并通過加載動畫緩解等待焦慮。 二、 80%的用戶僅使用小程序20%的功能,因此需
    發表于 03-14 14:51

    無法使用API實現NPU與OpenVINO?的內存共享怎么辦?

    無法使用 遠程張量 API 實現 NPU 與OpenVINO?的內存共享。
    發表于 03-06 07:11

    無法調用GPU插件推理的遠程張量API怎么解決?

    運行了使用 GPU 插件的遠程張量 API 的推理。但是,它未能共享 OpenCL* 內存,但結果不正確。
    發表于 03-06 06:13

    如何利用RFID技術提升固定資產管理效率

    利用RFID技術(包括RFID電子標簽、RFID手持終端、RFID讀寫器等)進行固定資產管理,可以大大提高資產管理的效率和準確性,降低管理成本,并為企業提供實時、準確的資產信息支持
    的頭像 發表于 02-11 14:24 ?229次閱讀
    如何<b class='flag-5'>利用</b>RFID技術<b class='flag-5'>提升</b>固定資產管理<b class='flag-5'>效率</b>?

    回饋式交流電子負載:測試效率與節能效果的雙重提升

    ,通過創新的能量回饋機制,實現了測試效率與節能效果的雙重提升,為電力電子測試領域帶來了革命性變革。 一、傳統測試方法的局限性 傳統電阻負載測試方法采用耗能式工作原理,將電能轉化為熱能消耗。這種測試方式
    發表于 02-07 11:13

    八個方面提升LED驅動電源效率

    關于提升LED驅動電源效率的技巧總結: 1.主電流回路PCB盡量短。LAYPCB的經驗,及布局,這個沒什么,快速的方法就是多看別人的作品。 2.優化變壓器參數設計,減少振鈴帶來的渦流損耗。這個比較
    發表于 01-17 10:07

    怎么提升單片機代碼執行效率

    ? 提升單片機代碼執行效率需要從多個方面入手,包括代碼優化、硬件資源利用、編譯器設置、中斷處理優化以及其他技巧等。在實際應用中,需要根據具體需求和硬件條件綜合考慮這些因素,以實現最佳的性能表現。 ?
    的頭像 發表于 01-10 11:06 ?466次閱讀

    大沖能源助力提升醫院能源利用效率

    昨日,由大沖能源負責的金華市人民醫院合同能源管理能源托管項目順利完成竣工驗收,標志著大沖能源在推動醫院節能減排和智能化管理方面取得了又一重要成果。該項目由大沖能源與金華市人民醫院攜手合作,旨在通過一系列高效節能改造和能源管理手段,提升醫院能源利用
    的頭像 發表于 12-27 15:46 ?467次閱讀

    RK3568國產處理器 + TensorFlow框架的張量創建實驗案例分享

    一、實驗目的 本節視頻的目的是了解張量定義、了解張量的表示形式、并學習基于TensorFlow框架的張量創建方法。 二、實驗原理. 張量定義 1、
    發表于 12-03 14:43

    《算力芯片 高性能 CPUGPUNPU 微架構分析》第3篇閱讀心得:GPU革命:從圖形引擎到AI加速器的蛻變

    線程調度,與Hopper架構的細粒度同步機制,使得異構計算場景下的任務協同更加靈活。在我的分布式訓練實踐中,這些特性顯著提升了模型收斂速度。 張量處理器的設計是本書點睛之筆。從數學抽象來看,張量統一了
    發表于 11-24 17:12

    永磁同步電機效率提升方法

    提升永磁同步電機效率的方法可以從多個方面進行,以下是一些有效的方法: 優化電機設計 : 增加磁場的強度:通過增加永磁體的磁通密度和提高永磁體及鐵心的磁導率,可以有效提升電機的磁場強度,從而提高
    的頭像 發表于 11-22 10:13 ?1288次閱讀

    DDR內存頻率對性能的影響

    的整體性能,特別是在處理大量數據或運行復雜程序時,如視頻編輯、3D渲染和高端游戲等場景。快速的內存可以縮短CPU和內存之間的通信時間,從而提升整體系統的響應效率。 二、多任務處理能力
    的頭像 發表于 11-20 14:25 ?3426次閱讀

    如何提升EDA設計效率

    EDA(Electronic Design Automation,電子設計自動化)設計技術是現代電子工程領域的關鍵技術之一,提升EDA設計效率對于電子工程師和整個電子行業都至關重要。以下是一些提升
    的頭像 發表于 11-08 14:23 ?918次閱讀

    提升效率:RTC時鐘實用設置

    今天來給大家講解的是RTC時鐘實用性,提升絕對的效率
    的頭像 發表于 11-04 16:35 ?1219次閱讀
    <b class='flag-5'>提升</b><b class='flag-5'>效率</b>:RTC時鐘實用設置

    如何提升RFID手持終端的讀寫效率

    RFID(射頻識別)手持終端是一種便攜式設備,用于讀取和寫入RFID標簽。提升RFID手持終端的讀寫效率對于提高物流、庫存管理、零售等行業的工作效率至關重要。以下是一些提升RFID手持
    的頭像 發表于 10-29 09:41 ?592次閱讀
    主站蜘蛛池模板: 久久秋霞理伦片 | 两个人的视频hd全免费 | 91日本在线观看亚洲精品 | 在线 国产 欧美 专区 | 国产亚洲精品久久久久久无码网站 | 大地影院日本韩国电影免费观看 | 午夜宅宅伦电影网中文字幕 | 51精品国产AV无码久久久密桃 | 欧美成人中文字幕在线视频 | 精品网站一区二区三区网站 | 99精品在线看| 第一次处破女完整版电影 | 女朋友的妈妈在线观看 | 久久精品影视 | 成人免费精品视频 | 床上色APP下载免费版 | 97亚洲狠狠色综合久久久久 | 狠狠狠色丁香婷婷综合久久 | 717影院理论午夜伦不卡久久 | 第一会所欧美无码原创 | 高清无码中文字幕在线观看视频 | 伊人久久中文字幕久久cm | 夜夜草导航 | 中文国产成人精品久久免费 | 国产精品无码人妻99999 | 试看做受120秒免费午夜剧场 | 久久re这里视频精品15 | 大地影院日本韩国电影免费观看 | 麻豆国产原创中文AV网站 | 儿子操妈妈 | 亚洲伊人久久综合影院2021 | 中文字幕视频在线观看 | 99久久久国产精品免费调教 | av先锋影音资源男人站 | 在线电台收听 | 国产精品涩涩涩视频网站 | 办公室的秘密2中文字幕 | 四虎影视库永久免费 | 草莓西瓜樱桃香蕉直播视频 | 亚洲AV无码乱码在线观看浪潮 | 久久国产成人午夜AV影院无码 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品