Pytorch學習 之 Tensor

學習網站: http://pytorch123.com/SecondSection/what_is_pytorch/
# -*- coding: UTF-8 -*-
"""
Modify: 2019-12-10
"""
# Tensors 張量
# Tensors 類似於Numpy的ndarrays, 同時tensors可以使用GPU進行計算
from __future__ import print_function
import torch

#構造一個5*3矩陣,不初始化
x = torch.empty(5, 3)
print(x)

#構造一個隨機初始化矩陣
x = torch.rand(5, 3)
print(x)

#構造一個矩陣全爲0, 而且數據類型是long
x = torch.zeros(5, 3, dtype=torch.long)
print(x)

#構造一個張量,直接使用數據
x = torch.tensor([6.6, 3])
print(x.dtype)
#基於已經存在的一個tensor創建一個新的tensor
# new_* 改變了x的原有尺寸,到保留其他屬性
x = x.new_ones(5, 3)
print(x.dtype)

#張量的類型會被重寫,但保留大小
x = torch.rand_like(x, dtype=torch.double)
print(x.dtype)  # torch.float64

#獲取它的維度信息
print(x.size())  # torch.Size([5, 3])

# torch.Size是一個元組,所以它支持左右的元組操作
#加法 1
y = torch.rand(5, 3)
print(x + y)
#加法2
print(torch.add(x, y))
# 加法,提供一個輸出tensor作爲參數
result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)
#加法 in-place
y.add_(x)
print(y)
#任何使張量變化的操作都有一個前綴,例如x.copy(),x.t_(),將會改變x

#可以使用標準的numpy類似的索引操作
print(x[:, 1])  # 輸出第一列

#改變大小,如果想改變一個tensor的大小或者形狀,可以使用torch.view
x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8) # -1 是指從其他維度推算出來
print(x.size(), y.size(), z.size())

#如果你有一個元素tensor, 使用 .item()來獲得這個value
x = torch.randn(1)
print(x)
print(x.item())



輸出結果
在這裏插入圖片描述

發佈了30 篇原創文章 · 獲贊 28 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章