千家信息网

PyTorch create_tensor怎么使用

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容主要讲解"PyTorch create_tensor怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PyTorch create_tenso
千家信息网最后更新 2025年12月03日PyTorch create_tensor怎么使用

本篇内容主要讲解"PyTorch create_tensor怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PyTorch create_tensor怎么使用"吧!

课程代码

1. create_tensor

import torchimport numpy as np a = np.ones((3, 3))print(a, id(a))b = torch.tensor(a)print(b, id(b), b.device)# b_gpu = torch.tensor(a, device = 'cuda')b_gpu = torch.tensor(a, device = 'cpu')print(b_gpu, id(b_gpu), b_gpu.device)c = torch.from_numpy(a)print(c, id(c))a[0, 0] = 2print(a, c)c[0, 1] = 3print(a, c)d = torch.zeros((3, 3, 3))print(d, d.dtype, d.shape)dd = torch.zeros_like(d)print(d, d.type, d.shape)e = torch.full((2, 2), 233)print(e, e.dtype)ee = torch.full((2, 2), 233.)print(ee, ee.dtype)f = torch.arange(1, 5)print(f, f.dtype)ff = torch.arange(1., 5.1)print(ff, ff.dtype)g = torch.linspace(1, 6, 6)print(g, g.dtype)h = torch.normal(0, 1, (3, 3))print(h, h.dtype)hh = torch.randn((3, 3))print(hh, hh.dtype)i = torch.rand((2, 2))print(i)ii = torch.randint(1, 5, (2, 2))print(ii)j = torch.randperm(20)print(j, j.dtype)

2. reshape_tensor

import torch import numpy as np a = torch.arange(0, 10, dtype = torch.int64)b = torch.reshape(a, (2, 5))print(b)b_T = torch.t(b)print(b_T, b_T.shape)c = torch.reshape(torch.arange(0, 24, dtype = torch.int64), (2, 3, 4))print(c)d = torch.transpose(c, 0, 1)print(d)e = torch.tensor([1])print(e, e.shape)f = torch.squeeze(e)print(f, f.shape)f = f * 2print(f, e)ee = torch.unsqueeze(f, dim = 0)print(ee)

3. concat_split_tensor

import torch import numpy as np t1 = torch.ones((2, 2))t2 = torch.zeros((2, 2))a = torch.cat([t1, t2], dim = 0)print(a, a.shape)b = torch.stack([t1, t2], dim = 0)print(b, b.shape)print(b[0], b[1])x = torch.split(b, [1, 1], dim = 0)print(type(x))c, d = xprint(c, d)e = torch.index_select(a, dim = 0, index = torch.tensor([0, 2]))print(e)mask = a.ge(1)f = torch.masked_select(a, mask)print(mask, f)

4. tensor_operator

# 通过一元线性回归, 来熟悉和展示常用的tensor的运算操作import torch import numpy as nptorch.manual_seed(10)# datax = torch.rand((20, 1)) * 10y = 2 * x + 5 + torch.randn(20, 1)# modelw = torch.tensor(np.asarray([0.3]), requires_grad=True)b = torch.tensor(np.asarray([0.]), requires_grad=True)print(w, b)# iterationfor _ in range(1000):    # flow    y_pre = w * x + b    loss = ( 0.5 * (y_pre - y) ** 2 ).mean()    # backwords    loss.backward()    w.data.sub_(0.05 * w.grad)    b.data.sub_(0.05 * b.grad)    w.grad.zero_()    b.grad.zero_()    # show    if _ % 100 == 0:        print(str(_) + ' loss is', loss.data.numpy())        if loss.data.numpy() < 0.47:            breakprint('finish...')

作业

1. 安装anaconda,pycharm, CUDA+CuDNN(可选),虚拟环境,pytorch,并实现hello pytorch查看pytorch的版本

2. 张量与矩阵、向量、标量的关系是怎么样的?

3. Variable"赋予"张量什么功能?

4. 采用torch.from_numpy创建张量,并打印查看ndarray和张量数据的地址;

5. 实现torch.normal()创建张量的四种模式。

1. 装环境

  1. conda create -n torch_p36 python=3.6.5

  2. conda activate torch_p36

  3. pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

2. 概念解释

标量(scalar)
一个标量表示一个单独的数,它不同于线性代数中研究的其他大部分对象

向量(vector)
一个向量表示一组有序排列的数。通过次序中的索引,我们可以确定每个单独的数

矩阵(matrix)
矩阵是具有相同特征和纬度的对象的集合,表现为一张二维数据表。其意义是一个对象表示为矩阵中的一行,一个特征表示为矩阵中的一列,每个特征都有数值型的取值

张量(tensor)
在某些情况下,我们会讨论坐标超过两维的数组。一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们将其称之为张量

3. Variable"赋予"张量功能

Variable是torch.autograd中的数据类型,主要用于封装Tensor,使得tensor可以进行自动求导
主要有五个属性
1.data:被包装的Tensor
2.grad:data的梯度
3.grad_fn:创建Tensor的Function(创建张量所用到的方法,如加法或乘法),是自动求导的关键
4.requires.grad:指示张量是否需要梯度,不需要梯度的张量可以设置为false
5.is_leaf:指示张量在计算图中是否是叶子结点。

现在variable不需要出现在代码中了, 并入到了tensor

Tensor

dtype

shape

device

4. 创建张量

import torchimport numpy as np a = np.ones((3, 3))print(a, id(a))b = torch.tensor(a)print(b, id(b), b.device)# b_gpu = torch.tensor(a, device = 'cuda')b_gpu = torch.tensor(a, device = 'cpu')print(b_gpu, id(b_gpu), b_gpu.device)c = torch.from_numpy(a)print(c, id(c))a[0, 0] = 2print(a, c)c[0, 1] = 3print(a, c)d = torch.zeros((3, 3, 3))print(d, d.dtype, d.shape)dd = torch.zeros_like(d)print(d, d.type, d.shape)e = torch.full((2, 2), 233)print(e, e.dtype)ee = torch.full((2, 2), 233.)print(ee, ee.dtype)f = torch.arange(1, 5)print(f, f.dtype)ff = torch.arange(1., 5.1)print(ff, ff.dtype)g = torch.linspace(1, 6, 6)print(g, g.dtype)h = torch.normal(0, 1, (3, 3))print(h, h.dtype)hh = torch.randn((3, 3))print(hh, hh.dtype)i = torch.rand((2, 2))print(i)ii = torch.randint(1, 5, (2, 2))print(ii)j = torch.randperm(20)print(j, j.dtype)

到此,相信大家对"PyTorch create_tensor怎么使用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

张量 矩阵 向量 对象 数据 标量 梯度 特征 代码 内容 功能 坐标 指示 数组 方法 环境 线性 求导 学习 更深 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 开放服务器暂 定位数据用什么数据库 个层次网络技术选型 数据库设计 一致性原则 如何切换创建世界的服务器 软件开发哪个研究生学校好 工程材料建立资源平台数据库 lte无线接入网络技术 专业技术人员网络安全试卷6 医院网站前台数据库设计 英特尔和中国服务器 山东省浪潮服务器店面电话多少 河北特定软件开发制造价格 网络安全技术发展快速 蚂蚁电视直播软件开发 杭州物流软件开发有哪些流程 软件开发完整配置流程 怎么进入英雄联盟的手游版服务器 扬州视频系统服务器 银川兴庆区怎么查服务器 数据库服务器瘫痪怎么和领导汇报 丰台区软件开发服务电话 网络服务中的数据库往往支持 保卫网络安全战斗口号 国泰君安数据库校园网用户 数据库的并发机制是什么 亿格瑞 登录服务器失败 服务器配置太高怎么设置 关于网络安全的水彩画 hana认证服务器
0