1.torch与numpy的比较及二者之间的转换。
import torch
import numpy as np
numpy_data = np.arange(15).reshape(3,5)
print 'numpy_data',numpy_data
torch_data = torch.from_numpy(numpy_data)
print 'torch_data',torch_data
numpy_data1 = torch_data.numpy()
print 'numpy_data1',numpy_data1
2.构建torch矩阵
#coding=utf-8
import torch
data = torch.Tensor(3,5) #构建一个3×5未初始化的矩阵
print data
data1 = torch.rand(5,3) #构建一个随机初始化的矩阵
print data1
print data1.size()
3.torch加法运算
#coding=utf-8
import torch
x = torch.rand(5,3) #构建一个随机初始化的矩阵
y = torch.rand(5,3)
print x + y
print torch.add(x,y)
#提供一个输出作为参数
result = torch.Tensor(5,3)
torch.add(x,y,out=result)
print result
#就地操作
y.add_(x)
print y
注意:任何改变张量的操作方法都是以后缀_结尾的
4.切片以及view方法
#coding=utf-8
import torch
x = torch.rand(4,4) #构建一个随机初始化的矩阵
print x[:,1] #索引操作
y = x.view(16)
print y
z = x.view(-1,8) #2*8
print z
5.创建tensor
#coding=utf-8
import torch
import numpy as np
x = torch.rand(4,4) #构建一个随机初始化的矩阵
print torch.is_tensor(x) #返回True
print torch.numel(x) #返回16
#创造操作
#1.对角元素为1
y = torch.eye(3,4) #对角元素为1,其余为0
print y
#2.从numpy.ndarray类创造一个tensor类
a = np.array([1,2,3])
t = torch.from_numpy(a)
print t
t[0] = -1
print a #[-1 2 3],注意这种创造方式tensor 和ndarray共享相同的内存
#3.利用torch.linspace
b = torch.linspace(2,10,steps=10) #注意step是start 和end 之间的样本数
print b
#4.torch.logspace() 返回10^start和10^end之间的对数间隔
c = torch.logspace(0.1,1.0,steps=5)
print c
#5.填充1
d = torch.ones(4,4)
print d
#6.torch.arange()
e = torch.arange(1,4) #默认step = 1
print e
#7.torch.zeros()
f = torch.zeros(6)
print f
g = torch.zeros(2,3)
print g
6.索引、切片、连接、换位
#coding=utf-8
import torch
#cat在给定维度上,对输入的张量序列进行连接操作
x = torch.randn(2,3)
y = torch.cat((x,x),0) #竖着摞在一起
print y
z = torch.cat((x,x),1) #横着落在一起
print z
#chunk在给定维度上将张量进行分块处理。chunks:要返回的分块的个数
g = torch.chunk(x,2,1)
print g
print '--'*20
#split 将输入张量分割成相同size的chunks。如果不能整分,则最后一块小于其他块
w = torch.split(z,3,dim=1) #3:代表每个分块大小为3
print w
#stack沿着一个新的维度对输入张量进行连接
f = torch.stack((x,x),dim=0)
print f
#转置
e = torch.t(x)
print e