Skip to content

AI STUDIO Taiwan

台 灣 人 工 智 慧 與 資 料 科 學 研 究 室

  • About 關於本站
  • 專欄列表
  • Taiwan NLP.台灣自然語言處理與人工智慧交流社( 1.8萬位成員)
  • 關於 Taiwan NLP 社群

【PyTorch 基礎教學】01 Tensor

Posted on 2020 年 1 月 6 日2023 年 3 月 8 日 By 楊 明翰 在〈【PyTorch 基礎教學】01 Tensor〉中尚無留言
PyTorch
Print Friendly, PDF & Email

PyTorch 張量的使用

在這趟旅程之前,我們需要先檢查CUDA和PyTorch是否正確安裝,是可以正常運作,首先在終端機執行指令「nvidia-smi 」

動態示範:

如果有正確安裝CUDA會得到類似以下輸出:

Sat Jan  7 05:32:21 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1650    Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   55C    P0    15W /  N/A |    374MiB /  3911MiB |     26%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      2282      G   /usr/lib/xorg/Xorg                193MiB |
|    0   N/A  N/A      2489      G   /usr/bin/gnome-shell               30MiB |
|    0   N/A  N/A      3145      G   ...382846677369537246,131072      138MiB |
|    0   N/A  N/A      8777      G   ...gmail.com/app/firefox-bin        7MiB |
+-----------------------------------------------------------------------------+

再來我們用PyTorch確認:

import torch

print(f'PyTorch check :{torch.cuda.is_available()}')

如果輸出為「 PyTorch check :True 」,表示沒問題,就可以開使用pytorch模組來寫程式了。

Tensor是張量的意思,可以當作多維陣列來理解。在PyTorch中,建立張量的方是torch.tensor例如建立一個二階張量,也就是矩陣:

(1)   \begin{equation*} \begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} \end{bmatrix} \end{equation*}

以PyTorch的語法會寫成:

t = torch.tensor([[1, 3], [2, 4]])

print(f"Tensor :\n{t}")

輸出:

Tensor :

tensor([[1, 3],

        [2, 4]])

這裡特別要注意的是tensor可以透過dype指定型態(在某些計算當中必須要指定,例如梯度計算),在文件中有詳系列出:https://pytorch.org/docs/stable/tensors.html 。這裡示範指定tensor的dtype屬性為torch.float64 雙精度浮點數:

t = torch.tensor([[1, 3], [2, 4]],dtype=torch.float64)

print(f"Tensor :\n{t}")

輸出:

Tensor :

tensor([[1., 3.],

        [2., 4.]], dtype=torch.float64)

此外,tensor存放的位置也可以指定,在傳統的程式計算中,變數的存放位置一般都是在記憶體中,但加入GPGPU之後,變數存放的位置可以是GPU的記憶體中。指定tensor初始化於指定的設備中則需要先用方法 tensor.device 叫出目前可用的CPU/GPU設備,例如GPU的0號:

device=torch.device('cuda', 0)

# or

device=torch.device('cuda:0’)

至於目前要使用哪個ID可以在終端機下 nvidia-smi 指令確認目前顯卡被電腦安排編號的具體情況。以我這裡為例就是編號0。

接下來,只要把device當參數傳給 torch.tensor 即可:


if torch.cuda.is_available(): # 避免沒有gpu可用

    gpu = torch.device('cuda', 0)

t = torch.tensor([[1, 2], [3, 4]], dtype=torch.float64,

                 device=gpu)

print(f"Tensor from cuda 0:\n{t}")

輸出:

Tensor from cuda 0:

tensor([[1., 2.],

        [3., 4.]], device='cuda:0', dtype=torch.float64)

以上就是如何直接指定元素值來建立一個PyTorch 的tensor物件。

✔ 幫我們按個喜歡和分享,支持我們

平均分數 3.4 / 5. 給分人數 7

尚未有評分,請幫我評分歐

楊 明翰
楊 明翰

是一名八年級中段班的創業者與資料科學家

“With belief and action, we change the world.”

憑藉信念與行動,我們改變世界💪

更多關於站長

本文允許重製、散布、傳輸以及修改,但不得為商業目的之使用

使用時必須註明出處自:楊明翰 , 台灣人工智慧與資料科學研究室 https://aistudio.tw

標籤: CUDA tensor

文章導覽

❮ Previous Post: 【個人演講】類神經網路的原理與實作工作坊
Next Post: 【Python 基礎教學】01 常見的開發環境簡介 ❯

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

更多AI相關資訊,歡迎加入站長的粉絲團

Facebook

閱讀視覺風格選擇


實驗袍白 / 適合資料分析師、科學家
終端機黑 / 適合黑客、電腦工程師

專欄列表

  • Artificial intelligence 人工智慧 (3)
    • HPC 高效能運算 (1)
    • PyTorch (1)
    • 從頭實作AI (1)
  • Backend 後端開發 (1)
  • C++ 應用 (2)
  • Community 社群介紹 (1)
  • Data Engineering 資料工程與訊號分析 (1)
  • Java 開發與教學 (2)
  • Linux 入門 (5)
  • NLP/NLU 自然語言處理與理解 (4)
  • Philosophy 站長哲學 (5)
  • Python 開發與教學 (7)
    • Python Flask 網站開發 (1)
    • Python 中階 (1)
    • Python 入門 (5)
  • Slides會議簡報 (12)
  • Start-up 創新創業 (7)
  • 機器學習數學基礎 (1)
  • 私人筆記手稿 (4)
  • 線上教學目錄 (4)

近期發布

  • 【Linux 應用】使用Zenity零成本開發的多開瀏覽器管理器
  • 【Start-up 創新創業】如何選擇創業題目
  • 【自然語言處理與理解】Llama-2大語言模型CPU版本使用
  • 【個人演講】AI EXPO 2023 ChatGPT以及LLM
  • 【自訓課程】NGS 次世代基因體資料科學 課程

討論

尚無留言可供顯示。

年份彙整

  • 2023 (9)
  • 2022 (4)
  • 2021 (6)
  • 2020 (14)
  • 2019 (8)
  • 2018 (10)
  • 2017 (2)
  • 2016 (4)
  • 2015 (2)

ChatGPT GRU HPC llama-cpp LLM Log4J LSTM Node.js SMO SVM Zenity 人工智慧 人格特質 出資 創新 創業 多語言 多開瀏覽器 大語言模型 感知機 戰鬥 技術 技術合夥 技術股 撰寫程式 新創 新手 新聞輿情 最佳化 機器學習 死亡 現代C++ 系統日誌 股東權益 能力 證明 變數 負債 資本 資產負債表 長短期記憶 霍普菲爾 類神經網 類神經網路 風險

調整字型大小

A 縮小字型大小。 A 重設字型大小。 A 放大字型大小。

Copyright © 2023 AI STUDIO Taiwan.
聯絡我們 : whuang022@gmail.com
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Theme: Oceanly by ScriptsTown