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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Pytorch实践中文教程(1)

發布時間:2025/3/15 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pytorch实践中文教程(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

PyTorch 是一個基于Torch框架的開源Python機器學習庫,用于NLP,CV等深度學習應用。它的開發人員是 Facebookd的人工智能小組,它不僅可以利用GPU加速,同時還實現了動態神經網絡,這點和現在流行的主流框架如TensorFlow不同。 PyTorch同時還有兩個高級功能: 張量計算(如Numpy) 和自動求導。
除了Facebook之外,Twitter、GMU和Salesforce等機構也都采用了PyTorch。
TensorFlow和Caffe都是命令式的靜態編程語言,,首先必須構建一個神經網絡,在訓練過程中結構不會發生變化,如果想要改 變網絡的結構,就必須從頭開始。但是對于PyTorch,通過 反向求導技術,可以讓你任意實時改變神經網絡。這一靈活 是PyTorch對比TensorFlow的最大優勢。
另外,PyTorch的代碼對比TensorFlow而言,更加簡潔直觀,底層代碼也更容易看懂,這對于使用 它并且計劃理解底層得人是一件特別棒的事情。
所以,總結一下PyTorch的優點:

  • 支持調用GPU進行運算
  • 支持動態神經網絡
  • 底層代碼易于理解
  • 自定義擴展
    當然,一枚硬幣有兩面,PyTorch也不例外,對比TensorFlow,其在功能全面性上差強人意,目前,PyTorch還不支持快速傅里葉、沿維翻轉張量和檢查無窮與非數值張量;針對移動 端、嵌入式部署以及高性能服務器端的部署其性能表現有待提升;其次因為這個框 架較新,使得 他的社區沒有那么強大,在文檔方面其核心庫大部分都沒有文檔。
  • 目錄

    文章目錄

    • 前言
    • 目錄
    • 正文
      • 什么是PyTorch
      • 概念基礎
        • Tensors(張量)
      • 運算
        • 減法:方式1
        • 減法:方式2
      • 維度
        • 取值

    正文

    首先是安裝Pytorch,可以參照這篇:
    Windows下pytorch安裝
    好了,現在可以開始熟悉PyTorch了。

    什么是PyTorch

    PyTorch 是一個基于Python的深度學習包,主要為兩類人提供服務:

  • 喜歡Numpy,卻覺得他太慢的人。
  • 目前使用的深度學習平臺不夠靈活。
  • 概念基礎

    Tensors(張量)

    Tensors是一種類似于NumPy的ndayyays的數據結構,具有多維數組的所有優點,同時,基于PyTorch的特殊實現,你可以用GPU來加速你的數組運算。

    # 首先導入torch包 from __future__ import print_function import torch

    讓我們小試牛刀一下,構造一個4*4的二維隨機數組。

    x=torch.rand(4,4) print(x)

    程序輸出

    tensor([[0.6254, 0.1690, 0.4922, 0.0543],[0.6057, 0.0293, 0.3909, 0.2498],[0.0916, 0.0795, 0.5616, 0.8738],[0.3008, 0.3016, 0.8778, 0.7976]])```大家可以注意一下,輸出的是Tensor標識的一個數據。另外有一個需要特別注意的地方,在初始化一個空數組時,結果可能和我們想象的不一樣。```b x=torch.empty(4,2) print(x)

    程序輸出

    tensor([[-8.2481e+24, 7.2727e-43],[-8.2485e+24, 7.2727e-43],[-8.2485e+24, 7.2727e-43],[-8.2485e+24, 7.2727e-43]])

    可以發現,輸出結果,和我們想象中有點點兒區別,但也沒什么大礙。
    PyTorch不僅可以設置數組的維度,同時還可以設置數組初始化時的數據類型。
    接下來我們來構建一個lond型的tensor吧。

    x=torch.zeros(4,4,dtype=torch.long) print(x)

    結果

    tensor([[0, 0, 0],[0, 0, 0],[0, 0, 0],[0, 0, 0],[0, 0, 0]])```b可以與設置為torch.float的做一下對比:```btensor([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])``` 和numpy一樣,Pytorch可以設置數組初始化時的數值: ```bx=torch.tensor([4.5,2]) print(x)#結果 tensor([4.5000, 2.0000])

    在批量初始化同維數組時,可以利用已經存在的數組的相關信息。

    x = x.new_ones(4, 4, dtype=torch.double) # new_*系列方法需要維度print(x) x = torch.randn_like(x, dtype=torch.float) # 重新設置數據類型print(x) print(x.size) # 結果有相同的維度# 結果tensor([[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]], dtype=torch.float64) tensor([[ 0.9930, 0.8410, -0.5197, -0.3821],[ 1.4312, -0.1829, 2.0677, -0.3969],[ 0.3915, 0.9932, -0.4115, 0.9079],[-0.6334, 0.8982, -0.2081, -0.4650]]) torch.Size([4, 4])

    運算

    接下來,本文將以減法為例演示,PyTorch如何實現四則運算。

    減法:方式1

    y=torch.randn(4,4) print(x-y) #輸出 tensor([[ 0.2948, 0.4200, -1.2566, -0.4528],[ 1.1510, -1.0804, 2.0055, -1.3292],[ 0.2645, 0.3557, -1.2443, 0.8334],[-1.0146, 0.6967, -0.9362, -1.2695]])

    減法:方式2

    # 可以指定輸出的存儲變量 result=torch.empty(4,4) torch.min(x,y,out=result) print(result) # 輸出 tensor([[ 0.6982, 0.4210, -0.5197, -0.3821],[ 0.2802, -0.1829, 0.0622, -0.3969],[ 0.1270, 0.6375, -0.4115, 0.0745],[-0.6334, 0.2014, -0.2081, -0.4650]])

    有的時候我們并不想增加我們的內存使用量
    可以使用以下方式:

    y.add_(x) print(y # 輸出 tensor([[ 1.6912, 1.2620, 0.2171, -0.3114],[ 1.7115, 0.7146, 2.1299, 0.5354],[ 0.5184, 1.6306, 0.4212, 0.9824],[-0.2522, 1.0996, 0.5200, 0.3395]])

    通過在相應的操作后面加上斜線,結果將會被放到第一個變量上。

    維度

    在操作Tensor的時候,可以使用和Numpy類似的操作。
    比如:

    print(x[1:3,1:2]) #輸出 tensor([[-0.1829],[ 0.9932]])

    如果,你想改變Tensor的維度,則可以使用view方法

    x=torch.randn(4,8) y=x.view(32) z=x.view(-1,8) print(x.size(),y.size(),z.size()) # 結果 torch.Size([4, 8]) torch.Size([32]) torch.Size([4, 8])

    取值

    類似于Numpy,torch也有可以直接獲得變量值的方法:

    x = torch.ones(1) print(x) print(x.item()) print(x) print(x.item()) #結果 tensor([1.]) 1.0

    未完待續
    關注公眾號,輸入‘torch1’,可以獲得本文的可交互代碼

    總結

    以上是生活随笔為你收集整理的Pytorch实践中文教程(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

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