您的位置:首页 > 编程语言 > Python开发

pytorch基本类型

2019-05-11 20:19 771 查看

import torch

 

"""

pytorch 基本数据类型

1)不支持内建string类型,使用one-hot ,Embedding表示;

使用one-hot表示时,如表示单词较多,则one-hot会比较长,但其中只有一个元素值为1,故整个向量表现得很稀疏。并且one-hot不能表示语义相关性,故使用Embedding表示;

2)内建类型:

CPU GPU

float torch.FloatTensor torch.cuda.FloatTensor

double torch.DoubleTensor torch.cuda.DoubleTensor

byte torch.ByteTensor torch.cuda.ByteTensor

int torch.IntTensor torch.cuda.IntTensor

long torch.LongTensor torch.cuda.LongTensor

3)类型推断:

"""

 

a = torch.randn(2,3)#随机初始化2row3col

print(a.type(),type(a),isinstance(a,torch.FloatTensor))#torch.FloatTensor <class 'torch.Tensor'> True

 

"""

4)cpu与gpu转换

"""

print(isinstance(a,torch.cuda.FloatTensor))#false

a = a.cuda()

print(isinstance(a,torch.cuda.FloatTensor))#true

 

"""

5)标量:主要用于计算loss时

Dimension 0 / Rank 0

a = torch.Tensor(1.0)#早期支持,最新版不支持

b = torch.Tensor(.3)

print(a,b)

标量的意思时没有方向的量,如买5个苹果,重量2.5KG,这里即为标量;

 

6)向量:注意这里注意数学和计算机不同表示 方式,本质上二者是一个东西。主要用于偏置,注意其是有方向的

Dimension 1 / Rank 1

"""

a = torch.FloatTensor([1.1])

b = torch.Tensor([1.1])#二者相同

c = torch.Tensor(2)#随机初始化

print(a,b,c)#tensor([1.1000]) tensor([1.1000]) tensor([1.0962e+09, 4.5874e-41])

 

import numpy as np

data = np.ones(2)

d = torch.from_numpy(data)#从numpy引入

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

print(torch.__version__)#1.1.0

print(d.shape,d.size())#torch.Size([2]) torch.Size([2])注意dimension和rank是一个东西,rank是数学上叫法;如[2,3]则其rank为2;size和shape指的是具体形状;

 

"""

Dimension2,Dimension3(适合RNN),Dimension4(适合图片)

7)

"""

a = torch.randn(2,3)

print(a.size(0),a.shape[0])#第0个元素

a = torch .randn(2,3,4)

print(a.size(0))

 

(adsbygoogle = window.adsbygoogle || []).push({});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CUDA NumPy PyTorch