Pytorch入门——Tensor
来源:互联网 发布:数据库基本概念 编辑:程序博客网 时间:2024/06/05 22:41
在之前的博客已经对Pytorch进行了介绍及安装,接下来正式学习Pytorch,本章博客主要介绍torch Tensor、torch Tensor与numpy array的转化以及运算操作。
1.Tensor
Tensor类似于numpy的ndarrays,另外它还可以在GPU上使用Tensor进行加速计算。
导入pytorch包
import torch
下面讲解如何创建一个5*3的矩阵,并输出
x = torch.Tensor(5, 3)print(x)#输出: 0.0000 0.0000 0.0000 0.0000 0.4677 0.0000 0.4692 0.0000 0.4662 0.0000 0.4693 0.0000 12.7686 189.2708 0.0000[torch.FloatTensor of size 5x3]
创建一个随机初始化矩阵
x = torch.rand(5, 3)print(x)#输出: 0.0608 0.8530 0.3833 0.3624 0.2066 0.9663 0.6356 0.3567 0.4907 0.1922 0.8057 0.5244 0.0902 0.3608 0.9948[torch.FloatTensor of size 5x3]
获取矩阵的大小
print(x.size())#输出:(5L, 3L)#torch.Size 实际上是一个元组,所以它支持相同的操作
2. pytorch Tensor与numpy array的转化
2.1 将Tensor转换为numpy数组
a = torch.ones(5)print (a)#输出: 1 1 1 1 1[torch.FloatTensor of size 5]
b = a.numpy()print (b)#输出:[ 1. 1. 1. 1. 1.]
对a加1,看看numpy数组b的值变化情况:
a.add_(1)#输出: 2 2 2 2 2print(a)#输出: 2 2 2 2 2[torch.FloatTensor of size 5]print(b)#输出:[ 2. 2. 2. 2. 2.]
2.2 将numpy数组转换为Torch张量
import numpy as npa = np.ones(5)b = torch.from_numpy(a)np.add(a, 1, out=a)#输出:array([ 2., 2., 2., 2., 2.])print (a)#输出:[ 2. 2. 2. 2. 2.]print (b)#输出: 2 2 2 2 2[torch.DoubleTensor of size 5]
pytorch Tensor与numpy array的转化,无论对tensor还是对array进行运算操作,通时都会改变两者的值。
3.运算操作
Pytorch提供运算操作的API,需要用到的的运算操作具体可参考官方文档说明,在这里以加法运算为例,展示Pytorch几种运算操作的语法:
语法1: op1 + op1
x = torch.rand(5, 3)#输出: 0.0608 0.8530 0.3833 0.3624 0.2066 0.9663 0.6356 0.3567 0.4907 0.1922 0.8057 0.5244 0.0902 0.3608 0.9948[torch.FloatTensor of size 5x3]y = torch.rand(5, 3)#输出: 0.8414 0.9531 0.9665 0.5594 0.9018 0.3758 0.6742 0.8654 0.9356 0.6685 0.8721 0.7872 0.7185 0.2411 0.8492[torch.FloatTensor of size 5x3]print (x+y)#输出: 0.9021 1.8061 1.3498 0.9218 1.1084 1.3421 1.3099 1.2221 1.4263 0.8608 1.6778 1.3116 0.8087 0.6019 1.8440[torch.FloatTensor of size 5x3]
语法2:torch.operation(op1, op2, …)
print(torch.add(x, y))#输出: 0.9021 1.8061 1.3498 0.9218 1.1084 1.3421 1.3099 1.2221 1.4263 0.8608 1.6778 1.3116 0.8087 0.6019 1.8440[torch.FloatTensor of size 5x3]
语法3:op1.operaition_(op2)
y.add_(x)#输出: 0.9021 1.8061 1.3498 0.9218 1.1084 1.3421 1.3099 1.2221 1.4263 0.8608 1.6778 1.3116 0.8087 0.6019 1.8440[torch.FloatTensor of size 5x3]
补充:可以使用该.cuda函数将tensor移动到GPU上计算:
# let us run this cell only if CUDA is availableif torch.cuda.is_available(): x = x.cuda() y = y.cuda() x + y
阅读全文
1 0
- Pytorch入门——Tensor
- PyTorch学习系列(四)——Tensor 和 Variable
- Pytorch-学习记录 卷积操作——Tensor.size()
- PyTorch学习总结(六)——Tensor实现
- Pytorch学习入门(一)--- 从torch7跳坑至pytorch --- Tensor
- Pytorch入门——概述
- Pytorch入门——安装
- Pytorch入门——神经网络
- Pytorch入门——安装
- pytorch-tensor data type
- Pytorch入门——Autograd:自动分化
- PyTorch学习—PyTorch是什么?
- Pytorch入门学习(五)---- 示例讲解Tensor, Autograd, nn.module
- pytorch tensor.view()变换得到的 tensor 一致
- pytorch入门(二)——自动求导函数
- Pytorch入门——安装快速安装方法
- pytorch 入门
- pytorch入门
- jxl读取excel时间
- 【JZOJ5272】【GDOI2018模拟】神奇的重复序列(DP,性质题)
- $.ajax()方法详解
- 4G LTE再次提速 速度最高可达1.2Gbps
- 织梦dedecms站内seo优化的标签调用代码大全
- Pytorch入门——Tensor
- How to analyse the code
- 【JZOJ5330】密码 && Kummer Theorem
- 小程序支付开发案例总结-小程序支付开发视频教程21
- 【23种设计模式】创建型模式 > 三个工厂模式(简单工厂、抽象工厂、工厂方法)
- win10专业版(64位)安装sonar
- 腾讯大牛教你web前后端漏洞分析与防御-XSS
- Caffe用训练好的模型测试图片
- 主席树