0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于PyTorch的深度學(xué)習(xí)入門教程之PyTorch簡單知識

ss ? 來源:雁回晴空 ? 作者:雁回晴空 ? 2021-02-16 15:20 ? 次閱讀

本文參考PyTorch官網(wǎng)的教程,分為五個基本模塊來介紹PyTorch。為了避免文章過長,這五個模塊分別在五篇博文中介紹。

Part1:PyTorch簡單知識

Part2:PyTorch的自動梯度計算

Part3:使用PyTorch構(gòu)建一個神經(jīng)網(wǎng)絡(luò)

Part4:訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)分類器

Part5:數(shù)據(jù)并行化

本文是關(guān)于Part1的內(nèi)容。

Part1:PyTorch簡單知識

PyTorch是一個基于Python的科學(xué)計算框架,用于進(jìn)行深度學(xué)習(xí)相關(guān)研究。對于Python語言的入門,可以參考之前的兩篇介紹Python&Numpy的博客。分別是Python& Numpy 教程(上) 和Python & Numpy 教程(下)。這里我們就直接介紹PyTorch中的基本操作。

1 Tensors

Tensors與numpy中的ndarray類似,但是Tensors支持GPU運(yùn)算。首先來做一些簡單的例子。

導(dǎo)入基本的package:


		

構(gòu)建一個5*3的未初始化的矩陣:

x = torch.Tensor(5, 3)
print(x)

構(gòu)建一個隨機(jī)初始化矩陣:

x = torch.rand(5, 3)
print(x)

獲取矩陣的size:

print(x.size())

注意,torch.Size實(shí)際上是一個tuple,所以它支持相同的運(yùn)算。

2 運(yùn)算(Operations)

運(yùn)算可以使用多種語法表示,我們以加法為例子來說明。

加法:語法1

y = torch.rand(5, 3)
print(x + y)

加法:語法2

print(torch.add(x, y))

加法:給定輸出的tensor

result = torch.Tensor(5, 3)
torch.add(x, y, out=result)
print(result)

加法:原地進(jìn)行(in-place)的加法

# adds x to y
y.add_(x)
print(y)

注意,任何原地改變tensor的運(yùn)算后邊會后綴一個“_”,例如:x.copy_(y),x.t_(),會改變x的值。

你可以使用標(biāo)準(zhǔn)的numpy方式的索引。

print(x[:, 1])

3 NumpyBridge

將torch的Tensor轉(zhuǎn)換為numpy的array,反之亦然。

torch的Tensor和numpy的array分享底層的內(nèi)存地址,所以改變其中一個就會改變另一個。

將torch Tensor轉(zhuǎn)換為numpy array

a = torch.ones(5)
print(a)
b = a.numpy()
print(b)

觀察numpy array的值怎樣改變。

a.add_(1)
print(a)
print(b)

將numpy array 轉(zhuǎn)換為torch Tensor

看一下改變numpy array的值是怎樣同時改變torch Tensor的。

import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)

CPU上的所有Tensors(除了CharTensor)支持到Numpy的雙向轉(zhuǎn)換。

4 CUDA Tensors

通過使用 .cuda 函數(shù),Tensors可以被移動到GPU。

# let us run this cell only if CUDA is available
if torch.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    x + y

責(zé)任編輯:xj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7104

    瀏覽量

    89294
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    808

    瀏覽量

    13289
收藏 人收藏

    評論

    相關(guān)推薦

    PyTorch 數(shù)據(jù)加載與處理方法

    PyTorch 是一個流行的開源機(jī)器學(xué)習(xí)庫,它提供了強(qiáng)大的工具來構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。在構(gòu)建模型之前,一個重要的步驟是加載和處理數(shù)據(jù)。 1. Py
    的頭像 發(fā)表于 11-05 17:37 ?465次閱讀

    如何使用 PyTorch 進(jìn)行強(qiáng)化學(xué)習(xí)

    強(qiáng)化學(xué)習(xí)(Reinforcement Learning, RL)是一種機(jī)器學(xué)習(xí)方法,它通過與環(huán)境的交互來學(xué)習(xí)如何做出決策,以最大化累積獎勵。PyTorch 是一個流行的開源機(jī)器
    的頭像 發(fā)表于 11-05 17:34 ?344次閱讀

    Pytorch深度學(xué)習(xí)訓(xùn)練的方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學(xué)習(xí)訓(xùn)練。
    的頭像 發(fā)表于 10-28 14:05 ?237次閱讀
    <b class='flag-5'>Pytorch</b><b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>訓(xùn)練的方法

    pytorch怎么在pycharm中運(yùn)行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個開源的機(jī)器學(xué)習(xí)庫,用于構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。要在PyCharm中使用
    的頭像 發(fā)表于 08-01 16:22 ?1513次閱讀

    pytorch環(huán)境搭建詳細(xì)步驟

    PyTorch作為一個廣泛使用的深度學(xué)習(xí)框架,其環(huán)境搭建對于從事機(jī)器學(xué)習(xí)深度學(xué)習(xí)研究及開發(fā)的人
    的頭像 發(fā)表于 08-01 15:38 ?908次閱讀

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們在深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡介 Python是一種高級、解釋型、通用
    的頭像 發(fā)表于 08-01 15:27 ?2134次閱讀

    PyTorch深度學(xué)習(xí)開發(fā)環(huán)境搭建指南

    PyTorch作為一種流行的深度學(xué)習(xí)框架,其開發(fā)環(huán)境的搭建對于深度學(xué)習(xí)研究者和開發(fā)者來說至關(guān)重要。在Windows操作系統(tǒng)上搭建
    的頭像 發(fā)表于 07-16 18:29 ?1163次閱讀

    基于PyTorch的卷積核實(shí)例應(yīng)用

    深度學(xué)習(xí)和計算機(jī)視覺領(lǐng)域,卷積操作是一種至關(guān)重要的技術(shù),尤其在圖像處理和特征提取方面發(fā)揮著核心作用。PyTorch作為當(dāng)前最流行的深度學(xué)習(xí)
    的頭像 發(fā)表于 07-11 15:19 ?508次閱讀

    pytorch中有神經(jīng)網(wǎng)絡(luò)模型嗎

    當(dāng)然,PyTorch是一個廣泛使用的深度學(xué)習(xí)框架,它提供了許多預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型。 PyTorch中的神經(jīng)網(wǎng)絡(luò)模型 1. 引言 深度
    的頭像 發(fā)表于 07-11 09:59 ?733次閱讀

    PyTorch的介紹與使用案例

    PyTorch是一個基于Python的開源機(jī)器學(xué)習(xí)庫,它主要面向深度學(xué)習(xí)和科學(xué)計算領(lǐng)域。PyTorch由Meta Platforms(原Fa
    的頭像 發(fā)表于 07-10 14:19 ?431次閱讀

    tensorflow和pytorch哪個更簡單?

    : TensorFlow和PyTorch都是用于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的開源框架。TensorFlow由Google Brain團(tuán)隊(duì)開發(fā),而PyTorc
    的頭像 發(fā)表于 07-05 09:45 ?925次閱讀

    PyTorch如何訓(xùn)練自己的數(shù)據(jù)集

    PyTorch是一個廣泛使用的深度學(xué)習(xí)框架,它以其靈活性、易用性和強(qiáng)大的動態(tài)圖特性而聞名。在訓(xùn)練深度學(xué)習(xí)模型時,數(shù)據(jù)集是不可或缺的組成部分。
    的頭像 發(fā)表于 07-02 14:09 ?1893次閱讀

    如何使用PyTorch建立網(wǎng)絡(luò)模型

    PyTorch是一個基于Python的開源機(jī)器學(xué)習(xí)庫,因其易用性、靈活性和強(qiáng)大的動態(tài)圖特性,在深度學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用。本文將從PyTorch
    的頭像 發(fā)表于 07-02 14:08 ?442次閱讀

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    深度學(xué)習(xí)作為人工智能領(lǐng)域的一個重要分支,在過去十年中取得了顯著的進(jìn)展。在構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的過程中,深度
    的頭像 發(fā)表于 07-02 14:04 ?1017次閱讀

    使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)

    PyTorch是一個流行的深度學(xué)習(xí)框架,它以其簡潔的API和強(qiáng)大的靈活性在學(xué)術(shù)界和工業(yè)界得到了廣泛應(yīng)用。在本文中,我們將深入探討如何使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),包括從基礎(chǔ)概念到高級
    的頭像 發(fā)表于 07-02 11:31 ?743次閱讀