python torch学习(一)

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


猜你喜欢

转载自blog.csdn.net/nanxiaoting/article/details/81051404
今日推荐