pytorch入門與實踐 2 2

2022-07-13 01:03:09 字數 1302 閱讀 2924

tensor

1--本質上可以理解為具有不同維度的陣列

2--支援的基本運算

|---建立tensor:  x=t.tensor(x,y) x,y 表示陣列的大小 , x=t.rand(x,y), x=t.ones(x,y)

|---獲取tensor的大小 x.size() 

|---加法運算

|----普通加法(返回新的變數) 

x=t.tensor(a,b),y=t.tensor(a,b),

x+yt.add(x,y)

x.add(y)

r=t.tensor(a,b), t.add(x,y,out=r)

|----改變運算物件的加法

y.add_(x)   y的內容被改變了

3--與numpy的關係

本質上就是共享乙個記憶體的物件的,可以快速轉化

|----tensor->numpy

x=t.tensor(a,b),y=x.numpy()

|----numpy->tensor

x=np.ones(a,b),y=t.from_numpy(x)

4--與cuda的tensor的關係可以通過  x.cuda()轉化 

variable 

1--在當實驗過程中沒有發現和tensor的區別?

2--variable與tensor的關係

|----  variable=

net1--pytorch中網路是以繼承的方式實現

|----繼承nn.model 然後實現 init 和 forward, 需要訓練的層放在init中(如conv),不需要訓練的放在 forward中定義即可,定義順序不一定

|----定義時沒有定義輸入的影象大小? pool層的引數?輸入時只接受batch輸入,要在前加乙個batch維度?

2--損失函式

|----損失函式定義在nn模組下,建立乙個物件criterion =nn.mseloss(), 使用該物件

3--優化器

|----怎麼理解優化器:定義了損失函式,反向傳播了梯度,但是如何利用梯度去改變引數就是優化器的作用

|----優化器的引數:優化的引數,學習率。 可以說學習率是梯度的比重,對訓練速度有影響,一般取0.1

|----使用流程:各種優化器定義在nn.optim中,宣告(net.parameters, lr)-> 計算loss -> loos反向傳遞 -> 優化器.step()

小總: pytorch 資料結構上的抽象是:  tensor -> variable -> net 三個層次, 基本上利用 variable 和 net 這個層次就能夠很方便的實現網路了

pytorch入門 拆分與拼接

其他相關操作 本篇pytorch的tensor拆分與拼接進行展示,包含 使用方法和含義均在 的批註中給出,因為有較多的輸出,所以設定輸出內容的第乙個值為當前print 方法所在的行 import torch import numpy as np import sys loc sys.getframe...

GitHub入門與實踐

基本資訊 書名 github入門與實踐 定價 39.0元 出版社 人民郵電出版社 出版日期 2015 07 01 isbn 9787115394095 字數 260000 頁碼 版次 1 裝幀 平裝 開本 32開 內容簡介 github入門與實踐 從git的基本知識和操作方法入手,詳細介紹了gith...

docker入門與實踐

docker是docker.lnc公司開源的基於lxc技術之上構建的container容器引擎,源 託管在github上,基於go語言並遵從apache 2.0協議開源。誕生於2013年初。docker是通過核心虛擬化技術 namespaces及cgroup等 來提供容器的資源隔離與安全保障等。由於...