Pytorch个人心得(一)-----Tensor基本使用

最近在学习Pytorch,在这里分享一些心得,其实如果也是入门的朋友可以直接参考我的这一个系列,因为比较接地气。Pytorch的安装我们这里忽略,毕竟也不是什么难事。这一讲我们大概说一下Pytorch的Tensor,就像numpy的ndarray(如果你有接触过numpy),Tensor是Pytorch里面的主要操作的数据形式,中文叫做张量,就是维度大于2的量。比如矩阵是二维,向量是一维,而张量就是三维以上了。下面话不多说直接就着代码和注释来理解吧同学们:
import torch
import numpy as np
‘‘‘
tensor 张量的一些操作
‘‘‘
a = torch.empty(5,3)  # 构造一个5*3的矩阵 并且不初始化
a = torch.rand(5,3)  # 均匀分布 0-1
a = torch.randn(5,3) # 连续标准正态分布 期望为0 方差为1
a = torch.zeros(5,3) # 全为0的矩阵
a = torch.tensor([[1,2,3],[4,5,6],[7,8,9]], dtype=torch.int)  # 可以直接使用python的list来进行初始化
b = a.new_ones(2,2)  # b继承了a的元素属性类型 等 new_ + 各种其他初始化函数都可以变成一个这样的函数
b = torch.rand_like(a,dtype=torch.float) # _like 继承形状

‘‘‘
tensor 和 numpy之间的一些联系
‘‘‘

a = torch.eye(5,dtype=torch.int32)
b = a.numpy()
c = torch.from_numpy(b)
b += 1  # b + 1 操作之后会发现三个变量a b c全都变化了 说明其实她们公用的一块内存 以后操作时应该警惕

‘‘‘
tensor 的一些变化操作
‘‘‘
a = torch.rand(4,4)
b = a.view(-1,2)  # view操作重整tensor的形状 -1是默认值的意思 计算机会根据2算出-1的地方应该是8(因为a有16个元素)

c = torch.ones_like(a)
d = a + c  # 基本运算有 +  -  *  /  **k

d = torch.add(a,c)

d = torch.empty_like(a)
d = torch.add(a,c,out=d)

c.add_(a) # 这个比较特殊 是 把 a 加给 c

‘‘‘
对tensor简单的切片处理
‘‘‘
a = torch.tensor([[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[1,2,3],[1,2,3]],[[1,2,3],[1,2,3],[1,2,3]]]) #定义一个三维张量
b = a[:,:,1] # 这个该怎么理解呢 就是 消除第三层的中括号 怎么消除呢 就要把 第三层每个里面index为1的挑出来变成个序列
print(a.size())
print(a)
print(b)

原文地址:https://www.cnblogs.com/BigDaddy1994/p/12063706.html

时间: 2024-08-30 18:23:32

Pytorch个人心得(一)-----Tensor基本使用的相关文章

PyTorch 使用心得

PyTorch 使用心得 模板 import torch.nn as nn import torch.optim as optim class Model(nn.Module): def __init__(self): super(Model, self).__init__() # self.hidden_layer = nn.Linear(in_dim, out_dim) def forward(self, x): # out = self.hidden_layer(x) return out

PyTorch【2】-Tensor

Tensor 即张量,在 tf 中也有这个概念,tensor 是 pytorch 和 tf 非常重要的数据结构,可以理解为多维数组,它可以是一个数.一个向量.一个矩阵.多维数组: Tensor 可以用 GPU 加速: 在 pytorch 中其用法类似于 numpy: 创建 Tensor 创建 Tensor,并查看尺寸 torch.Tensor(size): torch.empty(size): torch.zeros(size).torch.zeros_like(input):返回跟 input

[Pytorch]Pytorch中tensor常用语法

原文地址:https://zhuanlan.zhihu.com/p/31494491 上次我总结了在PyTorch中建立随机数Tensor的多种方法的区别. 这次我把常用的Tensor的数学运算总结到这里,以防自己在使用PyTorch做实验时,忘记这些方法应该传什么参数. 总结的方法包括: Tensor求和以及按索引求和:torch.sum() torch.Tensor.indexadd() Tensor元素乘积:torch.prod(input) 对Tensor求均值.方差.极值: torch

PyTorch中Tensor的维度变换实现

对于 PyTorch 的基本数据对象 Tensor (张量),在处理问题时,需要经常改变数据的维度,以便于后期的计算和进一步处理,本文旨在列举一些维度变换的方法并举例,方便大家查看. 维度查看:torch.Tensor.size() 查看当前 tensor 的维度 举个例子: >>> import torch >>> a = torch.Tensor([[[1, 2], [3, 4], [5, 6]]]) >>> a.size() torch.Size

什么是pytorch?

Pytorch是基于python的科学计算包,为两类受众提供服务 作为Numpy的替换,让你可以使用GPU的算力 作为一个深度学习计算平台提供最大的计算灵活性与速度 开始体验pytorch的基础功能 Tensor: tensor与Numpy的高维数据概念类似,可以在GPU上进行计算 import torch 建立一个5*3的未初始化的tensor x=torch.empty(5,3)print(x) out:tensor(1.00000e-07 * [[-0.0000, 0.0000, 0.00

PyTorch自动微分基本原理

序言:在训练一个神经网络时,梯度的计算是一个关键的步骤,它为神经网络的优化提供了关键数据.但是在面临复杂神经网络的时候导数的计算就成为一个难题,要求人们解出复杂.高维的方程是不现实的.这就是自动微分出现的原因,当前最流行的深度学习框架如PyTorch.Tensorflow等都提供了自动微分的支持,让人们只需要很少的工作就能神奇般地自动计算出复杂函数的梯度. PyTorch的autograd简介 Tensor是PyTorch实现多维数组计算和自动微分的关键数据结构.一方面,它类似于numpy的nd

主流的深度学习框架基本知识

本章内容 1.TensorFlow 2.Keras 3.MXNet 4.CNTK 5.PyTorch 常见的深度学习框架 常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领域,并获取了极好的效果.下面将主要介绍当前深度学习领域影响力比较大的几个框架, 1.TensorFlow-----擅长推断特征提取 2015年11月10日,Google宣布推出全

pytorch之Tensor

#tensor和numpy import torch import numpy as np numpy_tensor = np.random.randn(3,4) print(numpy_tensor) #将numpy的ndarray转换到tendor上 pytorch_tensor1 = torch.Tensor(numpy_tensor) pytorch_tensor2 = torch.from_numpy(numpy_tensor) print(pytorch_tensor1) print

pytorch教程[2] Tensor的使用

[1]中的程序可以改成如下对应的Tensor形式: import torch dtype = torch.FloatTensor # dtype = torch.cuda.FloatTensor # Uncomment this to run on GPU # N is batch size; D_in is input dimension; # H is hidden dimension; D_out is output dimension. N, D_in, H, D_out = 64, 1