当前位置: 首页 > wzjs >正文

中国网站虚拟主机 排名番禺区画册设计公司

中国网站虚拟主机 排名,番禺区画册设计公司,erp软件排名,上海松江品划建设网站前言:前一篇文章介绍了PyTorch概念,此次介绍PyTorch的API。 本文目录: 一、张量和标量张量标量标量与张量的关系 二、PyTorch创建张量(一)根据torch.tensor(data, dtype) 根据指定数据创建张量;&#xff0…

前言:前一篇文章介绍了PyTorch概念,此次介绍PyTorch的API

本文目录:

  • 一、张量和标量
    • 张量
    • 标量
    • 标量与张量的关系
  • 二、PyTorch创建张量
    • (一)根据torch.tensor(data=, dtype=) 根据指定数据创建张量;
    • (二)torch.Tensor(size=) 根据形状创建张量, 其也可用来创建指定数据或者指定类型的张量;
    • (三)torch.arange(start=, end=, step=):固定步长线性张量;torch.linspace(start=, end=, steps=):固定元素数线性张量;
    • (四)torch.randn/rand(size=) 创建随机浮点类型张量;torch.randint(low=, high=, size=) 创建随机整数类型张量,左闭右开;torch.initial_seed() 和 torch.manual_seed(seed=) 随机种子设置;
    • (五)torch.zeros(size=) 和 torch.zeros_like(input=) 创建全0张量;
    • (六)torch.ones(size=) 和 torch.ones_like(input=) 创建全1张量;
    • (七)torch.full(size=, fill_value=) 和 torch.full_like(input=, fill_value=) 创建全为指定值张量;
  • 三、类型转换
    • (一)张量类型转换
    • (二)张量、标量和numpy相互转换

一、张量和标量

张量和标量是深度学习和科学计算中最基本的数据表示形式,它们之间有着明确的区别和联系。

张量

元素为同一种数据类型的多维矩阵,与NumPy数组类似,张量既有数值,也有方向,可以看做是标量的高维扩展。

标量

标量是零维的单个数值,没有方向,只有大小。

在这里插入图片描述

标量与张量的关系

在这里插入图片描述

二、PyTorch创建张量

(一)根据torch.tensor(data=, dtype=) 根据指定数据创建张量;

import numpy as np
# 导入torch库,用于创建和操作张量
import torch# 创建并打印各种形状和类型的张量
print(torch.tensor(10))
print(torch.tensor([10],dtype=torch.int))
print(torch.tensor([[10]]))
print(torch.tensor([[[10]]]))
print(torch.tensor([[10,20],[30,40]]))# 从numpy数组创建并打印张量
print(torch.tensor(np.array([[10,20],[30,40]])))

(二)torch.Tensor(size=) 根据形状创建张量, 其也可用来创建指定数据或者指定类型的张量;

# 创建并打印各种形状的浮点数张量
print(torch.Tensor(5))# 指定形状,多的‘.’代表浮点,生成5个0
print(torch.Tensor(2,3))# 指定形状,生成2行3列0(浮点数)
print(torch.Tensor(size=(2,3)))   #指定size
# 计算并打印张量的维度
print(torch.Tensor([10]).ndim)
print(torch.Tensor([[[10]]]).ndim)# 通过列表和numpy数组创建并打印张量
print(torch.Tensor([[10,20],[30,40]]))
print(torch.Tensor(np.array([[10,20],[30,40]])))# 使用指定的数据类型创建并打印张量
print(torch.IntTensor([[10.2,20.7],[30.5,40.9]]))# 输出10,20,30,40,int32
print(torch.FloatTensor([[10,20],[30,40]]))# 输出10,20,30,40,float32
print(torch.LongTensor([[10,20],[30,40]]))# int64
print(torch.ShortTensor([[10,20],[30,40]]))# int16
print(torch.ByteTensor([[10,20],[30,40]]))# uint8
print(torch.HalfTensor([[10,20],[30,40]]))# float16

(三)torch.arange(start=, end=, step=):固定步长线性张量;torch.linspace(start=, end=, steps=):固定元素数线性张量;

# 1. 在指定区间按照步长生成元素 [start, end, step) 左闭右开
data = torch.arange(0, 10, 2)
print(data)# 2. 在指定区间按照元素个数生成 [start, end, steps] 左闭右闭
# step = (end-start) / (steps-1)
# value_i = start + step * i
data = torch.linspace(0, 9, 10)
print(data)

(四)torch.randn/rand(size=) 创建随机浮点类型张量;torch.randint(low=, high=, size=) 创建随机整数类型张量,左闭右开;torch.initial_seed() 和 torch.manual_seed(seed=) 随机种子设置;

# 1. 创建随机张量
data = torch.randn(2, 3)  # 创建2行3列张量
print(data)
# 查看随机数种子
print('随机数种子:', torch.initial_seed())# 2. 随机数种子设置 
torch.manual_seed(100)
data = torch.randn(2, 3)
print(data)
print('随机数种子:', torch.initial_seed())

(五)torch.zeros(size=) 和 torch.zeros_like(input=) 创建全0张量;

# 1. 创建指定形状全0张量
data = torch.zeros(2, 3)
print(data)# 2. 根据张量形状创建全0张量
data = torch.zeros_like(data)
print(data)

(六)torch.ones(size=) 和 torch.ones_like(input=) 创建全1张量;

# 1. 创建指定形状全1张量
data = torch.ones(2, 3)
print(data)# 2. 根据张量形状创建全1张量
data = torch.ones_like(data)
print(data)

(七)torch.full(size=, fill_value=) 和 torch.full_like(input=, fill_value=) 创建全为指定值张量;

# 1. 创建指定形状指定值的张量
data = torch.full([2, 3], 10)
print(data)# 2. 根据张量形状创建指定值的张量
data = torch.full_like(data, 20)
print(data)

三、类型转换

(一)张量类型转换

#类型转换
data=torch.rand(2,3)
print(data.dtype)
#类型转换方式1
print(data.type(torch.int32))
print(data.type(torch.float32))
print(data.type(torch.int64))
print(data.type(torch.int16))
print(data.type(torch.int8))
print(data.type(torch.uint8))#类型转换方式2
print(data.type(torch.double))
print(data.type(torch.long))
print(data.type(torch.short))
print(data.type(torch.half))
print(data.type(torch.bool))
#类型转换方式3
print(data.type(torch.ShortTensor))
print(data.type(torch.FloatTensor))
print(data.type(torch.LongTensor))
print(data.type(torch.IntTensor))
print(data.type(torch.DoubleTensor))
print(data.type(torch.HalfTensor))

(二)张量、标量和numpy相互转换

#标量转numpy
print(data.numpy())#numpy转张量,共享内存,但id不同
n1=np.array([1,2,3])
print(n1,id(n1))
t1=torch.from_numpy(n1)
print(t1,id(t1))   #n1和t1的id不同
【验证n1和t1是否共享内存:
n1[0] = 100  # 修改 NumPy 数组
print("修改后的 NumPy 数组:", n1)
print("PyTorch 张量是否同步变化:", t1)  # 结果显示:t1同步变为 tensor([100, 2, 3]),说明n1和t1共享内存】#使用copy不共享内存
n2=np.array([1,2,3])
print(n2,id(n2))
print(torch.from_numpy(n2.copy()),id(torch.from_numpy(n2.copy())))  #张量转标量
n3=3
print(torch.tensor(n3).item())  #先将3转为张量,再转为了标量;单数值numpy转标量也可用item()#标量转张量
print(torch.tensor(3))   #标量3被转为张量

今天的分享到此结束。

http://www.dtcms.com/wzjs/832443.html

相关文章:

  • 门户网站框架下载重庆包装设计公司
  • ps酒店网站模板网站建设word文档
  • 新乡网站设计清徐北京网站建设
  • 网站备案要收费吗免费行情软件网站下载大全安全吗
  • 网站开发工程师需要会写什么网页版式设计案例
  • 网站内容如何建设专业创业服务平台网站建设需求
  • 网站建设信(信科网络)wordpress迁移网站
  • 网站案例网站建设wordpress折腾
  • 能打开那种网站的手机浏览器历下区百度seo
  • 网站开发三层架构网站专题设计
  • 全球网站建设织梦小说网站模板
  • 微网站自己怎么做东莞网络优化服务商
  • 铜川市住房和城乡建设局网站建筑设计招标网站
  • 用户等待网站速度江苏联运建设有限公司网站
  • 江苏广宇建设集团有限公司网站品牌营销策划有限公司
  • 长春电商网站建设哪家专业南京做电商网站的公司
  • 做汽配网站淘宝客导购网站建设
  • 网站开发所需的技术更换网站域名 推广
  • 网站微信收款二维码怎么做中关村在线报价大全
  • 尉氏专业网站建设视频制作软件哪个最好用
  • 上海专业网站建设报网页版qq音乐在线登录
  • 东光网站建设建站的平台
  • 济南品牌网站建设低价合肥高新城创建设投资有限公司网站
  • 接任务做兼职的的网站哈尔滨建设工程
  • 网站建设员wordpress带用户
  • 网上服装商城网站代码网页介绍怎么写
  • 摄影网站怎么备案池州网站优化
  • 套模板网站版面设计素材网站
  • 平潭城乡住房建设厅网站dnf怎么做钓鱼网站
  • 房地产网站开发湖南网站开发 d岚鸿