第六章 PyTorch工具庫

2021-10-04 11:07:26 字數 2114 閱讀 9460

torch

1>動態計算圖,可以根據計算需要實時改變計算圖

2>動態計算機制使得除錯更加容易

3>動態計算更加適用於自然語言處理

4>傳統的物件導向程式設計風格

靜態圖計算——程式在編譯執行時將先生成神經網路的結構,然後再執行相應的操作,類似於「惰性計算」。

動態圖計算——程式按照編寫命令的順序進行執行

同等情況下,靜態可以更好的優化,而動態更加容易除錯

pytorch 0.4.0之前只能用variable包裝器的方法定義張量:

a = variable(torch.randn(5,5))
pytorch 0.4.0之後保留原始定義方法外,還可用torch.tensor方法定義張量。

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

a = variable(torch.randn(5,5))

張量計算可通過gpu加速,提供自動求導機制,且pytorch可以將張量存放於cpu或gpu中,可以大幅加速計算。

每個變數都有乙個標記(梯度請求)requires_grad。它允許從梯度計算中排除子圖,提高效率;

a = variable(torch.randn(5,5),requires_grad = true)  # requires_grad預設是false
當表示式的所有輸入都不需要梯度計算時,表示式結果不會輸出梯度

x = variable(torch.randn(5,5)) # 預設不請求梯度計算

y = variable(torch.randn(5,5)) # 預設不請求梯度計算

x = variable(torch.randn(5,5),requires_grad = true)

a = x + y # x,y都不請求梯度計算,a也不請求

a.requires_grad # 輸出false

b = a + z # z請求梯度計算,b也請求

a.requires_grad # 輸出true

當想要凍結部分模型,做模型優化微調finetuning時,這個引數十分實用。

pytorch 0.4.0之前用volatile自動求導,現已被棄用。

pytorch 0.4.0之後,用torch.no_grad()/torch.set_grad_enabled(grad_mode)表示是否求導,不再考慮遞推,已經換成了一套更加靈活的上下文管理方式。**如下:

x = torch.zeros(1,requires_grad = true)

with torch.no_grad(): # 通過with限定不可求導 的範圍

y = x * 2

y.requires_grad # 輸出false

is_train = false

with torch.set_grad_enabled(is_train): # 設定這一部分要不要放到計算圖

y = x * 2

y.requires_grad # 輸出false

torch.set_grad_enabled(true): # 不要with,也可直接使用

y = x * 2

y.requires_grad # 輸出true

torch.set_grad_enabled(false): # 不要with,也可直接使用

y = x * 2

y.requires_grad # 輸出false

可以參考我上傳的資源pytorch模型基本**.tar.gz中的pytorch基礎.ipynb檔案

可以參考我上傳的資源pytorch模型基本**.tar.gz中的線性回歸和邏輯回歸檔案

可以參考我上傳的資源pytorch模型基本**.tar.gz中的多層感知器檔案

可以參考我上傳的資源pytorch模型基本**.tar.gz的cnn和rnn檔案

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

第六章 指標

1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...

第六章總結

6.1 使用滑鼠 6.1.1 滑鼠時間和滑鼠訊息 根據使用者操作滑鼠時滑鼠的位置,滑鼠訊息分為兩類 客戶區滑鼠訊息和非客戶區滑鼠訊息。1.客戶去滑鼠訊息 2.當滑鼠游標位於視窗的使用者區時,將生成客戶滑鼠訊息。滑鼠訊息和鍵盤訊息有所不同,windows 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...