NLP学习之Pytorch基础操作

NLP学习之Pytorch基础操作

一、Pytorch是什么?

Pytorch是基于Numpy的科学计算包。
两大功能:
作为Numpy的替代者,向用户提供使用GPU强大功能的能力。
做为一款深度学习平台,向用户提供最大的灵活性和速度。

二、基本操作

1.Tensors 张量

类似于Numpy中的ndarray数据结构,最大的去别在与Tensor可以利用CPU的加速功能

引用代码如下(示例):

from __future__ imort print_function
import torch

2.操作

(1)创建一个没有初始化的矩阵

代码如下(示例)

x = torch.empty(5,3)  //创建一个未初始化的5行3列矩阵
print(x)                 //打印x

(2) 创建一个有初始化的矩阵

(按照标准高斯分布来进行初始化的)

x = torch.rand(5,3)

(2) 创建一个有初始化的矩阵

(按照标准高斯分布来进行初始化的)

x = torch.rand(5,3)

(3) 创建一个零矩阵并指定元素数据类型为long

x = torch.zeros(5,3,dtype = torch.long)

(4) 直接通过数据创建张量

x = torch.tensor([2.5,3.5])

(5) 通过已有张量创建相同尺寸的新张量

x = x.new_ones(5,3,dtype=torch.double)
y = torch.randn_like(x,dtype=torch.float)

(6) 采用.size()方法来得到张量的形状

print(x.size())
print(y.size())

3.运算

1)加法

(1)

print(x+y)

(2)

print(torch.add(x,y))

(3)

result = torch.empty(5,3//提前设定一个空的张量
torch.add(x,y,out=result)   //将x+y的结果放入空的张量result中

(4)in-place(原地置换)

y.add_(x) //将x+y的结构存到y中,相当于 y = x+y

2)打印

print(x [ :, 1]) //打出第一列
print(x[:,:3]) //打印出012三列

3)改变张量的形状:torch.view()

x = torch.randn(4,4)  //x 中有16个数据元素
y = x.view(16)   //tensor.view()操作需要保证数据元素的总量不变
z = z.view(-1,8)  //-1 代表自动匹配个数 ,8代表有8列 ,该位置上的数必须能够被数据元素总数整除
print(x.size(),y.size(),z.size())
//如果张量中只有一个元素,可以用.item()将值取出,作为一个python number
 x = torch.randn(1)
 print(x)
 print(x.item())   //当张量中的元素个数大于等于2时,则不能使用.item()

你可能感兴趣的:(pytorch,自然语言处理,学习)