pytorch常用函數總結


jupyter無法畫圖,不斷重啟的話,把這個代碼放在最前面。好像是因為某些環境重復配置了?

import os

os.environ['KMP_DUPLICATE_LIB_OK']='True'


L.append(b) 列表末尾添加新的對象

2.1數據操作
2.1.1入門
x = torch.arange(12) 生成0-11的12個數的向量(張量)
X = torch.arange(24).reshape(2, 3, 4) 生成完直接改變形狀
len(x) 顯示張量的列數
x.shape /x.size() 顯示X張量的形狀
x.numel() 輸出X中元素的總數
x.reshape(4,3) 改變張量的形狀
x.reshape(-1,4) -1表示默認添加
torch.zeros(3,4) 生成全為0的張量
torch.ones(3,5) 生成全為1的張量
torch.randn(3,5) 服從高斯分布的(-1,1)隨機值
torch.tensor([[3,4], [1,2], [5,6] ]) 自己定義張量的形狀和內容
B = A.clone() 通過分配新內存,將A的一個副本分配給B

2.1.2運算
x+y,x-y,x*y,x/y,x**y **為求冪運算
torch.exp(x) e的x次方
torch.cat((X, Y), dim=0) 矩陣拼接 dim=0, 為豎着拼接
torch.cat((X, Y), dim=1) 矩陣拼接 dim=1, 為橫着拼接
X.sum() (X+Y).sum 張量求和
A.sum(axis=0) axis=1是按照行
A.sum(axis=1)
torch.dot(x, y) 兩個張量點積
torch.mv(A, x) 向量積
torch.mm(A, B) 矩陣乘法
torch.norm(u) 向量范數
torch.abs(u).sum() 向量內數據的絕對值之和
u=y.detach() y是反向傳播自動求導內的,detach后,
u則成為新的常數,和原來無關

2.1.3廣播機制(就是張量補全機制)
a = torch.arange(3).reshape((3, 1))
b = torch.arange(2).reshape((1, 2)) 操作優秀啊
a+b 張量的大小不同的話,會在每個形狀上取最大值

2.1.4索引和切片
X[-1] -1代表直接取最后一行
X[1:3] 取2 3行
X[1,2]
X[0:2,:]

2.1.5節省內存
z= torch.zeros_like(Y) 建立一個全為0的形狀和Y相同的張量
X=X+Y 不要使用,可能會在內存中建立兩個X,可以使用下面的兩種形式
X[:] =X+ Y X+=Y
id[X] 顯示變量的內存地址

2.1.6轉換為其他python對象
A=X.numpy() 如操作所示
B=torch.tensor(A) 如操作所示
type(A),type(B) 顯示變量的類型
a.item() 將大小為1的張量轉換為標量

2.2數據的預處理
2.2.1讀取數據集
import os 調用os庫
os.makedirs(os.path.join('..', 'data'), exist_ok=True) 在程序文件的同等級中建立一個data的文件夾
data_file = os.path.join('..', 'data', 'house_tiny.csv') 在data文件夾中,建立一個house_tiny的csv格式的數據
with open(data_file, 'w') as f: 數據的寫入格式如下
f.write('NumRooms,Alley,Price\n') # 列名
f.write('NA,Pave,127500\n') # 每行表示一個數據樣本
f.write('2,NA,106000\n')
f.write('4,NA,178100\n')
f.write('NA,NA,140000\n')

import pandas as pd 調用pandas庫
data = pd.read_csv(data_file) csv數據的讀入格式如下。

2.2.2缺失值處理
csv文件打開方式:
import pandas as pd
data = pd.read_csv("house_tiny.csv")
對讀入的數據進行索引的方式
inputs = data.iloc[:, 0:2] 這個是按列數索引
inputs = dataloc[:,'A'] 取A列中所有行的數據
inputs = dataloc[:,['A','B']] 取A,B列中所有行的數據
inputs = dataloc[:,['A','B'],['a','b']] 取A,B列和a,b行中所有的數據
數據缺省值的替換
input.mean() 求input中所有數的均值
input.fillna(X) 用X值對缺省值進行替換
文字缺省值替換:
inputs = pd.get_dummies(inputs, dummy_na=True)
結果為: 直接把Alley中的數據進行了分類,然后列到了新的幾行中。
NumRooms Alley_Pave Alley_nan
0 3.0 1 0
1 2.0 0 1
2 4.0 0 1
3 3.0 0 1

2.2.3轉換為張量模式
X, y = torch.tensor(inputs.values), torch.tensor(outputs.values)

2.3線性代數
A.T

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM