真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【pyTorch基礎(chǔ)】初窺張量-創(chuàng)新互聯(lián)

import numpy as np
import torch
# 等差數(shù)列(開始,結(jié)束,個(gè)數(shù))
torch.linspace(0.1,1,5)
tensor([0.1000, 0.3250, 0.5500, 0.7750, 1.0000])
# 空矩陣
print(torch.empty([3,4]))
# 找了一塊不用的內(nèi)存,不在乎里面的數(shù)據(jù),可能是之前遺留下來的(返回未初始化的數(shù)據(jù))
print(torch.empty(3,5))
tensor([[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]])
tensor([[1.0286e-38, 1.0194e-38, 9.6429e-39, 9.2755e-39, 9.1837e-39],
        [9.3674e-39, 1.0745e-38, 1.0653e-38, 9.5510e-39, 1.0561e-38],
        [1.0194e-38, 1.1112e-38, 1.0561e-38, 9.9184e-39, 1.0653e-38]])
# 以base為底,(2,6)五等份,從2的2次方到2的6次方
torch.logspace(2,6,5,base = 2)
tensor([ 4.,  8., 16., 32., 64.])
# (m,n)全a的矩陣
torch.full((3,4),2)
tensor([[2, 2, 2, 2],
        [2, 2, 2, 2],
        [2, 2, 2, 2]])
# 二維單位矩陣(E)
torch.eye(5)
tensor([[1., 0., 0., 0., 0.],
        [0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0.],
        [0., 0., 0., 1., 0.],
        [0., 0., 0., 0., 1.]])
依概率分布創(chuàng)建張量
# 高斯分布:torch.normal(mean, std, out=None)
print(torch.normal(2, 3, size=(1,5)))
# 一一對應(yīng)生成一個(gè)
print(torch.normal(mean = torch.arange(1.,11.), std = torch.arange(1,0,-0.1)))
tensor([[6.0627, 3.5489, 3.7053, 0.9814, 3.8663]])
tensor([-0.7955,  1.0690,  3.7225,  3.0768,  4.5076,  5.9667,  6.9369,  8.6122,
         8.8240,  9.8426])
# 標(biāo)準(zhǔn)正態(tài)分布
torch.randn((3,4))
tensor([[-0.1535, -1.9643, -0.8889, -0.4511],
        [ 0.4905,  0.1066,  0.5044,  1.4474],
        [ 1.2457, -0.8081,  2.6163, -1.1373]])
# 整數(shù)均勻分布(均勻分布 =>范圍內(nèi)的數(shù)被取到的概率一樣 =>low,high范圍內(nèi)的整數(shù)隨機(jī)數(shù)) [low,high)
torch.randint(1, 10, (2,3))
tensor([[3, 7, 8],
        [9, 7, 8]])
# 生成從0到n-1的隨機(jī)排列(隨機(jī)調(diào)整數(shù)據(jù)序列)
torch.randperm(5)
tensor([2, 0, 1, 4, 3])
# 伯努利分布(0-1分布)
s = torch.empty(3, 3).uniform_(0,1) # 生成(0,1)之間的隨機(jī)數(shù)
print(s)
print(torch.bernoulli(s))
tensor([[0.8420, 0.6974, 0.6081],
        [0.2279, 0.3899, 0.1904],
        [0.9900, 0.6994, 0.6235]])
tensor([[1., 1., 1.],
        [1., 1., 0.],
        [1., 1., 0.]])
張量拼接與切分
# torch.cat:按dim指定維度拼接,0為行,1為列
x = torch.randint(1, 10, (2, 3))
torch.cat((x, x, x),dim = 0)
tensor([[7, 3, 7],
        [7, 4, 7],
        [7, 3, 7],
        [7, 4, 7],
        [7, 3, 7],
        [7, 4, 7]])
# torch.stack:新創(chuàng)建一個(gè)維度,拼接(在高一維拼接)
y = torch.randint(1, 10, (2,3))
torch.stack((x,y),1)
tensor([[[7, 3, 7],
         [9, 1, 8]],
        [[7, 4, 7],
         [9, 5, 9]]])
# torch.split:為int時(shí),表示每一份的長度;為list時(shí),按list元素切分
a = torch.arange(10).reshape(5,2)
print('a:',a)
print('為int時(shí):',torch.split(a, 1)) # 返回tensor列表
print('為list時(shí):',torch.split(a,[2,3]))
a: tensor([[0, 1],
        [2, 3],
        [4, 5],
        [6, 7],
        [8, 9]])
為int時(shí): (tensor([[0, 1]]), tensor([[2, 3]]), tensor([[4, 5]]), tensor([[6, 7]]), tensor([[8, 9]]))
為list時(shí): (tensor([[0, 1],
        [2, 3]]), tensor([[4, 5],
        [6, 7],
        [8, 9]]))
張量索引
# torch.index_select:按dim指定,截??;indices參數(shù)必須是tensor數(shù)組的格式
x = torch.randn(3, 4)
print(x)
indices = torch.tensor([0, 2])
torch.index_select(x, 1, indices)
tensor([[-0.3880,  0.3159, -1.5236, -1.0030],
        [ 1.2080,  0.5500,  0.0146, -1.0543],
        [-1.7705,  0.6398,  2.2544, -2.0102]])

tensor([[-0.3880, -1.5236],
        [ 1.2080,  0.0146],
        [-1.7705,  2.2544]])
# torch.masked_select
x = torch.randn(3,4)
print(x)
mask = x.ge(0.5)# 返回True or False 以input為界
print(mask)
torch.masked_select(x, mask) # 按True進(jìn)行索引,返回一維數(shù)組
tensor([[ 0.0288, -0.0047,  1.6408,  0.2148],
        [-0.7997, -0.3897,  1.1881, -0.5227],
        [-0.5981,  1.8946,  0.1165,  0.7575]])
        
tensor([[False, False,  True, False],
        [False, False,  True, False],
        [False,  True, False,  True]])
        
tensor([1.6408, 1.1881, 1.8946, 0.7575])
張量變換
# reshape 10 = 2 * 5
torch.arange(10).reshape(2,5)
tensor([[0, 1, 2, 3, 4],
        [5, 6, 7, 8, 9]])
# torch.transpose:按維度轉(zhuǎn)置
x = torch.randint(1,10,(3,4))
print(x)
y = torch.transpose(x, 0, 1)# dim=1和dim=0交換
print(y)
# print(x.T) 二維的矩陣轉(zhuǎn)置可以直接x.T得到
tensor([[2, 1, 9, 7],
        [9, 4, 5, 8],
        [6, 9, 9, 8]])
tensor([[2, 9, 6],
        [1, 4, 9],
        [9, 5, 9],
        [7, 8, 8]])
# torch.squeeze:壓縮長度為1的維度
x = torch.zeros(2, 1, 2, 1, 2)
print(x.shape)
y = torch.squeeze(x)
print(y,'\n',y.shape)
torch.Size([2, 1, 2, 1, 2])
tensor([[[0., 0.],
         [0., 0.]],

        [[0., 0.],
         [0., 0.]]]) 
 torch.Size([2, 2, 2])
# torch.unsqueeze:按照dim擴(kuò)展維度
x = torch.tensor([1, 2, 3, 4])
torch.unsqueeze(x, dim = 1)
tensor([[1],
        [2],
        [3],
        [4]])
線性回歸Demo
# 首先隨機(jī)生成訓(xùn)練樣本x,y
x = torch.rand(20,1) * 10 
y = 2 * x + (torch.rand(20,1) + 6) # y = ax + b
# 初始化線性回歸參數(shù)w,b
w = torch.randn((1), requires_grad=True)
b = torch.randn((1), requires_grad=True)
# 設(shè)置學(xué)習(xí)率lr
lr = 0.05
for iterator in range(100):
    wx = torch.mul(w, x)# 向量相乘
    y_pre = torch.add(wx,b)# 向量相加
    # 均方誤差損失loss=
    loss = (0.5 * (y - y_pre) ** 2).mean()
    # 損失函數(shù)求導(dǎo),梯度下降法最小化loss
    loss.backward()
    # 更新參數(shù)
    w.data.sub_(lr * w.grad) # '-' 表示 -=
    b.data.sub_(lr * b.grad)
    # 梯度清零(可以放到求導(dǎo)之前)
    w.grad.data.zero_()
    b.grad.data.zero_()
print(w.data, b.data)
tensor([2.1755]) tensor([5.2428])

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

成都創(chuàng)新互聯(lián)公司是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷策劃、微信平臺(tái)小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十多年以來,已經(jīng)為1000+酒店設(shè)計(jì)各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的1000+客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。
文章題目:【pyTorch基礎(chǔ)】初窺張量-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://weahome.cn/article/dgshsi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部