pytorch基本操作

2021-10-09 22:59:29 字數 3382 閱讀 2710

# -*- coding:utf-8 -*-

import torch

import numpy as np

#根據torch.tensor生成張量

print(torch.tensor(1))

print(torch.tensor((2,3)))

print(torch.tensor([2,3]))

#根據torch.tensor生成張量

print(torch.tensor(3))

print(torch.tensor(3,4))

print(torch.tensor((3,4)))

print(torch.tensor([3,4]))

#張量和numpy陣列的相互轉化

#將numpy陣列轉化為張量

f=np.ones((3,4))

print(f)

print(torch.as_tensor(f))

print(torch.from_numpy(f))

#將張量轉化為陣列 .numpy()

print(torch.as_tensor(f).numpy())

torch.manual_seed(100)

a=torch.normal(mean=0.0,std=torch.tensor(1.0))

print(a)

c=torch.ones(2,3)

print(c)

d=torch.rand_like(c) #rand_like生成尺寸一樣的張量

print(d)

e=torch.randn(3,3)

print(e)

f=torch.randn_like(e)

print(f)

g=torch.randperm(10) #生成隨機生成的從0到9的一維的張量

print(g)

h=torch.arange(start=0,end=10,step=2)

print(h)

j=torch.linspace(start=1,end=10,steps=5) #生成從1到10等間距的5個數,包括1和10

print(j)

#torch.zeros(3,3)

#torch.ones(3,3)

#torch.eye(3,3)

#torch.full((3,3),fill_value=0.25)

#torch.empty(3.3)

#print(torch.empty(3.3)) #生成乙個空張量看,沒有賦值

##############################

#張量操作

##############################

#1 改變張量的形狀

a=torch.arange(12.0)

print(a)

print(a.reshape(3,4))

print(a.reshape(-1,3))

print(a.resize_(2,6))

print(a)

print("*"*90)

#2 增加維度和減少維度

a=torch.arange(12).reshape(2,6)

print(a.size())

b=torch.unsqueeze(a,dim=0) #在第一維上面加上乙個維度

print(b.size())

c=b.unsqueeze(dim=3)

print(c.size())

d=c.squeeze(dim=3) #squeeze只能去除維度為1的地方

print(d.size())

e=torch.squeeze(c,dim=3)

print(e.size())

print("#"*90)

a=torch.arange(10)

b=a.expand(2,-1)

print(a)

print(a.size())

print(b)

print(b.size())

print("@"*100)

a=torch.arange(12).reshape(1,3,4)

print(a)

print(a[0].size())

print(a[:,:2,:])

print(a[:,:2,:].size())

##############################

#張量拼接和拆分

##############################

print("*"*100)

a=torch.arange(8).reshape(2,4,1)

print(a)

b=torch.linspace(0,10,8).reshape(2,4,1)

print(b)

#在0維度上拼接張量 在第0個維度上拼接

c=torch.cat((a,b),dim=0)

print(c.size())

#在1維度上拼接張量,在第1維度上拼接

c=torch.cat((a,b),dim=1)

print(c.size())

#coding:utf-8

import torch

#張量的基本運算

#元素的計算

a=torch.arange(6.0).reshape(2,3)

b=torch.linspace(10.0,20.0,steps=6).reshape(2,3)

print("a=",a)

print("b=",b)

print("a*b=",torch.mul(a,b))

print("a*b=",a*b)

print(torch.eq(torch.mul(a,b),a*b))

print("a/b=",a/b)

#矩陣的轉置

c=torch.t(a)

print("c= ",c)

print("*"*100)

#矩陣相乘 torch.matmul針對高維度後面兩個進行矩陣乘法,torch.mm只針對兩個維度

a=torch.arange(6.0).reshape(2,3)

b=torch.linspace(10.0,20.0,steps=6).reshape(3,2)

print(torch.matmul(a,b).size())

print(torch.mm(a,b).size())

#函式作用

#計算兩個tensor的矩陣乘法,torch.bmm(a,b),tensor a 的size為(b,h,w),tensor b的size為(b,w,h),注意兩個tensor的維度必須為3.

Pytorch的基本操作

建立 檢視形狀 建立指定形式的張量 操作方法 加減乘除 以及操作裝置 cpu gpu 1 torch.tesor 建立張量 2 torch.view 對張量進行降維 3 torch.size 檢視張量的形狀 4 torch.ones torch.zeros 建立指定形式的張量 5 torch.to ...

pytorch入門1 1(基本操作)

本節繼續來講pytorch的入門級操作,加加減減 拍平拉直的操作。在操作張量的的時候,肯定少不了張量之間的加減乘除。二維世界的張量就是矩陣,是不是像我們學數學那樣直接用 直接操作就好了呢?x torch.tensor 1,2 3,4 y torch.ones 2,2 x y 對應元素相加 x y 對...

pytorch入門1 0(基本操作)

pytorch入門1.0 主要是關於張量的建立 運算 索引等一些基本操作。隨便練習一下,增加對張量操作的熟悉程度。1.pytorch是什麼?pytorch是2017年由facebook人工智慧研究院 fair 基於torch推出的乙個開源python機器學習庫。該庫能借助gpu加速張量的計算 亦具有...