初识pytorch(一)

本文介绍了PyTorch框架,重点讲解了张量(tensor)的概念、创建方法以及如何查看其维度、类型、元素个数和大小。它强调了PyTorch的张量支持GPU加速,并与numpy数组进行了对比。
摘要由CSDN通过智能技术生成

1.1 pytorch框架简介

  Torch是一个开源的机器学习框架,在2002年发布了Torch的初代版本,Torch的编程语言为C和Lua。在2017年,Facebook推出了pytorch深度学习框架,主要编程语言为python。pytorch是Torch框架的一个端口(pytorch是torch的python版本)。常见的深度学习框架有:Theano、TensorFlow、keras、Caffe、pytorch等等,其中TensorFlow和pytorch是目前主流的深度学习框架。

1.2 创建tensor

  tensor即"张量"(不是张亮麻辣烫),是一种数据结构(数据类型),是pytorch中最基础的运算单位。实际上,张量tensor与numpy数组(NDArray)类似,但pytorch中的tensor可以运行在GPU上,而numpy数组(NDArray)只能运行在CPU上,因此tensor加快了运算速度。张量tensor可以看作是一个多维数组。标量(scalar)可以看作0维张量,向量(vector)可以看作1维张量,矩阵可以看作2维张量。总而言之,tensor是一个可以运行在GPU上的多维数据。在Pytorch中,可利用torch.tensor()torch.Tensor()生成新的张量

  1. torch.Tensor()是python中的一个类,是torch.FloatTensor的别名。
  2. torch.tensor()是一个函数,函数原型是:torch.tensor(data, dtype=None, device=None, requires_grad=False)。其中,data可以是:list、tuple、NumPy ndarray、scalar和其他类型。torch.tensor()会从data中的数据部分做拷贝(而不是直接引用),根据原始数据类型生成相应的torch.LongTensor、torch.FloatTensor和torch.DoubleTensor,或者根据dtype的值生成相应数据类型。
import torch
tensor1 = torch.tensor([1, 2, 3])
tensor2 = torch.Tensor([1, 2, 3])
print(tensor1)
print(tensor2)
输出:
tensor([1, 2, 3])
tensor([1., 2., 3.])

# torch.Tensor() 可以创建一个空的FloatTensor,使用torch.tensor()时则会报错。
tensor3 = torch.Tensor()
tensor4 = torch.tensor()  # 会报错

参考【PyTorch】Tensor和tensor的区别

1.3 查看tensor数据的维度(ndim、dim())、类型(dtype、type())、元素个数(numel())和大小(shape、size())

直接上代码

import torch

tens = torch.tensor([[1, 3, 5], [2, 4, 6]], dtype=float)
print(f"tens:  {tens}")
print(f"dtype:  {tens.dtype}")  # 通过对象的属性dtype查看tens数据类型
print(f"ndim:  {tens.ndim}")  # 通过对象的属性ndim查看tens数据的维度
print(f"dim():  {tens.dim()}")  # 通过对象的方法dim()查看tens数据的维度
print(f"shape:  {tens.shape}")  # 通过对象的属性shape查看tens的大小(形状)
print(f"size():  {tens.size()}")  # 通过对象的方法size()查看tens的大小
print(f"type():  {tens.type()}")  # 通过对象的方法type()查看tens数据类型
print(f"type():  {type(tens)}")  # 通过内置函数type()查看tens数据类型
print(f"numel():  {tens.numel()}")  # 通过对象的方法numel()查看tensor数据包含的元素个数

输出:
tens:  tensor([[1., 3., 5.],
        [2., 4., 6.]], dtype=torch.float64)
dtype:  torch.float64
ndim:  2
dim():  2
shape:  torch.Size([2, 3])
size():  torch.Size([2, 3])
type():  torch.DoubleTensor
type():  <class 'torch.Tensor'>
numel():  6
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值