PyTorch學習1 PyTorch的基本資料型別

2021-10-20 18:15:57 字數 3257 閱讀 4133

import torch

import numpy as np

a = torch.randn(2, 3) # 隨機初始化乙個2行3列的矩陣

print(a)

print(a.type()) # torch.floattensor

print(type(a)) # print(isinstance(a, torch.floattensor)) # true

print(torch.tensor(1.)) # tensor(1.)

print(torch.tensor(1.3)) # tensor(1.3000)

a = torch.tensor(2.2)

print(a.shape)

print(a.shape)

print(torch.size())

print(a.size())

print(torch.tensor([1.1])) # tensor([1.1000])

print(torch.tensor([1.1, 2.2])) # 二維

print(torch.floattensor(1)) # tensor([1.8014e+25])

print(torch.floattensor(2)) # tensor([2.0000, 0.0081])

print(torch.floattensor(3)) # tensor([2.0000, 0.0081, 0.0000])

a = torch.randn(2, 3)

print(a)

print(a.shape) # torch.size([2, 3])

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

print(a.size(0)) # 2

print(a.shape[0]) # 2

print(a.size(1)) # 3

print(a.shape[1]) # 3

# rnn input batch

a = torch.rand(1, 2, 3)

print(a)

print(a.shape) # torch.size([1, 2, 3])

print(a[0])

print(list(a.shape)) # [1, 2, 3]

a = torch.rand(2, 3, 28, 28)

print(a)

print(a.shape) # torch.size([2, 3, 28, 28])

print(a[0])

print(torch.size([2, 3, 28, 28])) # torch.size([2, 3, 28, 28])

print(a.numel()) # 4704 = 2 * 3 * 28 *28

print(a.dim()) # 4

# torch.floattensor用於生成資料型別為浮點型的tensor,傳遞給torch.floattensor的引數可以是乙個列表,也可以是乙個緯度值

a = torch.floattensor(2, 3)

b = torch.floattensor([1, 2, 3, 4])

print(a)

print(b)

a = torch.randn(2, 3)

print(a)

print(a.type)

print(type(a))

print(isinstance(a, torch.floattensor))

print(isinstance(a, torch.cuda.floattensor))

# # 將 a 搬到 cuda上

# a = a.cuda()

# print(isinstance(a, torch.cuda.floattensor))

# 建立 0 維張量(矩陣)

loss = torch.tensor(1.)

print(loss) # tensor(1.)

print(type(loss)) # print(len(loss.shape)) # 0

print(loss.size()) # torch.size()

# 建立 1 維張量

bias = torch.tensor([1.1])

print(bias) # tensor([1.1000])

print(type(bias)) # print(bias.size()) # torch.size([1])

print(len(bias.shape)) # 1

bias1 = torch.tensor([1.1, 2.2])

print(bias1) # tensor([1.1000, 2.2000])

bias2 = torch.floattensor(10) # 建立一維陣列

print(bias2) # tensor([-1.8891e+26])

data = np.ones(2)

print(data) # [1. 1.]

torch_data = torch.from_numpy(data) # 從numpy 轉為 tensor

print(torch_data) # tensor([1., 1.], dtype=torch.float64)

# 二維資料

a = torch.randn(2, 3)

print(a)

print(a.shape)

# a.size(0): 第一維度資訊 a.size(1): 第二維度資訊

print('第乙個維度:%d 第二個維度:%d' % (a.size(0), a.size(1)))

# 三維向量 適用於線性批次輸入

a = torch.rand(2, 3, 3)

print(a)

print(a.shape) # torch.size([2, 3, 3])

print(a[0])

print(a[1])

print(a.size(0)) # 2

print(a.size(2)) # 3

print(list(a.shape)) # [2, 3, 3]

# 4維

a = torch.rand(2, 3, 5, 5)

print(a)

print(a.shape)

print(a.numel()) # 占用記憶體

print(a.dim) # 統計維度

什麼是PyTorch,為何要使用PyTorch

pytorch 是torch7 團隊開發的,從它的名字就可以看出,其與torch 的不同之處在於pytorch 使用了python 作為開發語言。所謂 python first 同樣說明它是乙個以python 優先的深度學習框架,不僅能夠實現強大的gpu 加速,同時還支援動態神經網路,這是現在很多主...

Pytorch學習 1 pytorch簡介

pytorch簡介 1 pytorch簡介 1.1 pytorch的大概 pytorch不是簡單的封裝 lua torch 提供python介面,而是對當下tensor之上的模組進行重構,並增加了最先進的自動求導系統,成為當下最流行的動態圖框架。pytorch是乙個基於torch的python開源機...

pytorch基礎學習 1

剛剛接觸了tensorflow,現在對pytorch也有很大的興趣,說到底,這些機器學習庫都是工具,技多不壓身,2016年到現在也不到三年的庫,發展這麼快必然有它的道理,廢話不多,開始學習吧。包torch包含了多維張量的資料結構以及基於其上的多種數學操作。另外,它也提供了多種工具,其中一些可以有效的...