昇思25天學習打卡營第03天 | 張量 Tensor

昇思25天學習打卡營第03天 | 張量 Tensor

文章目錄

  • 昇思25天學習打卡營第03天 | 張量 Tensor
    • 張量
    • 張量的創建
    • 張量的屬性
    • Tensor與NumPy轉換
    • 稀疏張量
      • CSRTensor
      • COOTensor
    • 總結
    • 打卡

張量

張量(Tensor)是一種類似于數組和矩陣的特殊數據結構,是神經網絡中參與運算的基本結構。
對于 n n n維空間中的一個張量,其具有 n r n^r nr個坐標分量,其中 r r r被稱為該張量的秩或階。

張量的創建

  • 從列表創建
data = [1, 0, 1, 0]
x_data = Tensor(data)
  • 從NumPy數組創建
np_array = np.array(data)
x_np = Tensor(np_array)
  • 使用init初始化器創建,需要傳入三個參數,主要用于并行模式下的延后初始化。
    • init:支持initializer的子類,如One()Normal()
    • shape:支持listtupleint
    • dtype:支持mindspore.dtype
tensor1 = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=One())# Initialize a tensor from normal distribution
tensor2 = mindspore.Tensor(shape=(2, 2), dtype = mindspore.float32, init=Normal())
  • 從一個張量創建新的張量
from mindspore import opsx_ones = ops.ones_like(x_data)		# [1 1 1 1]
x_zeros = ops.zeros_like(x_data)	# [0 0 0 0]

張量的屬性

MindSpore中一個張量具有下面的屬性:

  • shape
  • dtype
  • itemsize:單個元素所占的字節大小
  • nbytes:Tensor所占的總字節數
  • ndim:Tensor的秩
  • size:Tensor中元素的個數
  • strides:Tensor每一維所需要的字節數

Tensor與NumPy轉換

  • 使用Tensor.asnumpy()將Tensor轉換為Numpy數組。
  • 使用Tensor.from_numpy()將numpy數組轉換為Tensor

稀疏張量

在很多場景中,張量中只有少量的非零元素,如果用普通張量進行存儲,會引入大量不必要的開銷,這時就可以使用稀疏張量來表示。

MindSpore中定了了三種稀疏張量結構:CSRTensorCOOTensorRowTensor

CSRTensor

CSR (Compressed Sparse Row) Tensor 具有高效的存儲和計算優勢。

  • indptr:一維整數張量,表示非零元素在values中的起始位置和結束位置;
  • indices:一維整數張量,表示非零元素在列中的位置,與values長度相等;
  • values:一維張量,表示非零元素;
  • shape:表示被壓縮的張量的形狀。
indptr = Tensor([0, 1, 2])
indices = Tensor([0, 1])
values = Tensor([1, 2], dtype=mindspore.float32)
shape = (2, 4)# Make a CSRTensor
csr_tensor = CSRTensor(indptr, indices, values, shape)

上述代碼對應的Tensor為:
[ 1 0 0 0 0 2 0 0 ] \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 2 & 0 & 0 \end{bmatrix} [10?02?00?00?]

COOTensor

COO (Coordinate Format) Tensor用來表示給定索引上非零元素的集合,其參數為:

  • indices:二維證書張量,每行代表非零元素的下標。
  • values:一維張量,表示非零元素值。
  • shape:表示被壓縮的稀疏張量的形狀。
indices = Tensor([[0, 1], [1, 2]], dtype=mindspore.int32)
values = Tensor([1, 2], dtype=mindspore.float32)
shape = (3, 4)# Make a COOTensor
coo_tensor = COOTensor(indices, values, shape)

總結

這一節內容對MindSpore框架中的Tensor進行了較為詳細的介紹,包括Tensor的創建、Tensor的索引和簡單運算、與NumPy數組之間的轉換。此外,還介紹了稀疏矩陣的兩種表示方法和創建方法,為之后對張量的操作建立了初步的認識。

打卡

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38799.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MATLAB|更改繪圖窗口的大小和位置

MATLAB繪圖 plot、plot3、cdfplot都適用 效果 如下圖,運行程序后可以直接得到這兩個繪圖窗口。 右上角的Figure1是原始圖片,右下角的Figure2是調整了位置和大小后的繪圖窗口。 完整源代碼 % 繪圖大小和位置調整 % Evand©2024 % 2024-7-1/Ver1…

Transformer模型原理細節解析

基本原理: Transformer 的核心概念是 自注意力機制(Self-Attention Mechanism),它允許模型在處理每個輸入時“關注”輸入序列的不同部分。這種機制讓模型能夠理解每個單詞或符號與其他單詞或符號之間的關系,而不是逐個地線性處理輸入。 Transformer 主要由兩個部分組成:…

手把手教你搭建PyTorch環境:MindStudio中PyTorch模型開發實戰

本次實驗的視頻鏈接如下:?https://www.bilibili.com/video/BV1iA4y1f7o1/ 本次實驗在MindStudio上進行,請先按照 教程 配置環境,安裝MindStudio。 ? MindStudio的是一套基于華為自研昇騰AI處理器開發的AI全棧開發工具平臺,該IDE上功能很多…

Boost 智能指針

scoped_ptr 不能被復制或賦值給其他 scoped_ptr 對象,不能與其他指針比較 (除了 nullptr) scoped_ptr 用例 template <typename T> class scoped_ptr {public:// 構造函數:初始化 scoped_ptr 并接管指針的所有權explicit scoped_ptr(T* ptr = nullptr) : ptr_(ptr) …

Flink CDC的使用

MySQL數據準備 create database if not exists test; use test; drop table if exists stu; create table stu (id int primary key auto_increment, name varchar(100), age int); insert into stu(name, age) values("張三",18); insert into stu(name, age) valu…

ESOP 系統助力電子設備公司的管理模式升級

在科技飛速發展的時代&#xff0c;電子設備行業競爭愈發激烈&#xff0c;企業要想在市場中立足并持續發展&#xff0c;不斷升級管理模式成為關鍵。ESOP系統的引入&#xff0c;為電子設備公司帶來了全新的機遇&#xff0c;有力地推動了管理模式的升級。 ESOP 系統首先為電子設備…

element el-table表格切換分頁保留分頁數據+限制多選數量

el-table表格并沒有相關的方法來禁用表頭里面的多選按鈕 那么我們可以另辟蹊徑&#xff0c;來實現相同的多選切換分頁&#xff08;保留分頁數據&#xff09; 限制多選數量的效果 <el-table:data"tableData"style"width: 100%">// 不使用el-talbe自帶…

農村程序員陳隨易2024年中總結

今天是 2024年7月1日&#xff0c;時間如白駒過隙&#xff0c;今年已去其一半。 總結一下今年上半年的情況&#xff0c;給大家提供一些參考和建議。 希望大家關注一下公眾號 陳隨易&#xff0c;有些內容只在公眾號發表。 先看看我的年初計劃&#xff0c;這個在今年年初的時候&…

泛微E9開發 限制明細表列的值重復

限制明細表列的值重復 1、需求說明2、實現方法3、擴展知識點3.1 修改單個字段值&#xff08;不支持附件類型&#xff09;3.1.1 格式3.1.2 參數3.1.3 案例 3.2 獲取明細行所有行標示3.2.1 格式3.2.2 參數說明 1、需求說明 限制明細表的“類型”字段&#xff0c;在同一個流程表單…

【全網首發】雙字重疊語序驗證碼識別

【省流&#xff1a;打算直接測試效果的可以訪問這個網址】 http://decaptcha.ai?project_namenetease_zh_overlap 【實現方案】 如圖所示&#xff0c;我們能看到&#xff0c;比起以往的“單個字”語序點選&#xff0c;這個驗證碼的難點在于“重疊漢字“&#xff0c;我們知道…

【Python機器學習】模型評估與改進——簡單的網格搜索

為了提升模型的泛化性能&#xff0c;我們可以通過調參來實現。 在嘗試調參之前&#xff0c;重要的是理解參數的含義&#xff0c;找到一個模型的重要參數&#xff08;提供最佳泛化性能的參數&#xff09;的取值是一項棘手的任務&#xff0c;但對于幾乎所有模型和數據集來說都是…

API-Window對象

學習目標&#xff1a; 掌握Window對象 學習內容&#xff1a; BOM&#xff08;瀏覽器對象模型&#xff09;定時器-延時函數JS執行機制location對象navigation對象history對象 BOM&#xff08;瀏覽器對象模型&#xff09;&#xff1a; BOM是瀏覽器對象模型。 window對象是一個全…

Windows 11的市場份額越來越大了,推薦你升級!

7月1日&#xff0c;系統之家發布最新數據&#xff0c;顯示Windows 11操作系統的市場份額正在穩步上升。自2021年10月Windows 11發布以來&#xff0c;Windows 10一直占據著市場主導地位&#xff0c;當時其市場份額高達81.44%。然而&#xff0c;隨著時間的推移&#xff0c;Window…

鴻蒙學習1:ArkTS基礎入門

1 變量和常量 1.1 變量 常見的基礎數據類型&#xff1a; string 字符串、number 數字、boolean布爾 判斷。 變量&#xff1a;專門用來存儲數據的容器。 語法&#xff1a;let 變量名: 數據類型 值。例如&#xff1a;let name: 張三;let price:number 12.4; let isSuccess …

【triton-inference-server】 官方python_backend 文檔及例子

https://github.com/triton-inference-server/python_backend#building-from-source 一。 從源碼構建python_backend root@ubuntu-server:/home/ubuntu/hzh# sudo apt-get install rapidjson-dev libarchive-dev zlib1g-dev Reading package lists... Done Building dependency…

vue3中的自定義指令

全局自定義指令 假設我們要創建一個全局指令v-highlight&#xff0c;用于高亮顯示元素。這個指令將接受一個顏色參數&#xff0c;并有一個可選的修飾符bold來決定是否加粗文本。 首先&#xff0c;在創建Vue應用時定義這個指令&#xff1a;&#xff08;這里可以將指令抽離成單…

昂科燒錄器支持BPS晶豐明源半導體的多相Buck控制器BPD93004E

芯片燒錄行業領導者-昂科技術近日發布最新的燒錄軟件更新及新增支持的芯片型號列表&#xff0c;其中BPS晶豐明源半導體的多相Buck控制器BPD93004E已經被昂科的通用燒錄平臺AP8000所支持。 BPD93004E是一款多相Buck控制器&#xff0c;支持原生1~4相&#xff0c;數字方式控制&am…

科普文:一文搞懂jvm原理(二)類加載器

概敘 科普文&#xff1a;一文搞懂jvm(一)jvm概敘-CSDN博客 前面我們介紹了jvm&#xff0c;jvm主要包括兩個子系統和兩個組件&#xff1a; Class loader(類裝載器) 子系統&#xff0c;Execution engine(執行引擎) 子系統&#xff1b;Runtime data area (運行時數據區域)組件&am…

Cambrian-1: A Fully Open, Vision-Centric Exploration of Multimodal LLMs

摘要 https://arxiv.org/pdf/2406.16860v1 我們介紹了Cambrian-1&#xff0c;這是一系列以視覺為中心的多模態大型語言模型&#xff08;MLLMs&#xff09;。盡管更強大的語言模型可以增強多模態能力&#xff0c;但視覺組件的設計選擇往往沒有得到充分的探索&#xff0c;并且與…

學習筆記(linux高級編程)9

void pthread_cleanup_push(void (*routine)(void *)&#xff0c; void *arg); 功能&#xff1a;注冊一個線程清理函數 參數&#xff0c;routine&#xff0c;線程清理函數的入口 arg&#xff0c;清理函數的參數。 返回值&#xff0c;無 void pthread_cleanup_pop(int execute)…