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

站长统计芭乐鸭脖小猪电商平台哪个最好

站长统计芭乐鸭脖小猪,电商平台哪个最好,市场调研ppt,网站安全狗 服务名目录 张量转换为 numpy 数组 numpy 转换为张量 标量张量和数字的转换 张量拼接操作 张量索引操作 #x1f606;#x1f606;#x1f606;感谢大家的观看#x1f606;#x1f606;#x1f606; 张量转换为 numpy 数组 #x1f50e;使用 Tensor.numpy 函数可以将张量…目录 张量转换为 numpy 数组 numpy 转换为张量 标量张量和数字的转换 张量拼接操作 张量索引操作 感谢大家的观看 张量转换为 numpy 数组 使用 Tensor.numpy 函数可以将张量转换为 ndarray 数组但是共享内存可以使用 copy 函数避免共享。 data_tensor torch.tensor([2, 3, 4]) # 使用张量对象中的 numpy 函数进行转换 data_numpy data_tensor.numpy()print(type(data_tensor)) print(type(data_numpy))# 修改其中的一个另外一个也会发生改变! # data_tensor[0] 100 data_numpy[0] 100print(data_tensor) print(data_numpy) 我们可以通过对象拷贝避免共享内存 data_tensor torch.tensor([2, 3, 4]) # 使用张量对象中的 numpy 函数进行转换 data_numpy data_tensor.numpy().copy()print(type(data_tensor)) print(type(data_numpy))# data_tensor[0] 100 data_numpy[0] 100 print(data_tensor) print(data_numpy) numpy 转换为张量 使用 from_numpy 可以将 ndarray 数组转换为 Tensor默认共享内存使用 copy 函数避免共享。使用 torch.tensor 可以将 ndarray 数组转换为 Tensor默认不共享内存。 def test01():data_numpy np.array([2, 3, 4])data_tensor torch.from_numpy(data_numpy)# 共享内存# data_numpy[0] 100data_tensor[0] 100print(data_tensor)print(data_numpy)# 使用 torch.tensor 函数 def test02():data_numpy np.array([2, 3, 4])data_tensor torch.tensor(data_numpy)# 不共享内存# data_numpy[0] 100data_tensor[0] 100print(data_tensor)print(data_numpy) 标量张量和数字的转换 对于只有一个元素的张量(shape没有限制元素只有一个)使用 item 方法将该值从张量中提取出来。  data torch.tensor([30,]) print(data.item())data torch.tensor(30) print(data.item())data torch.tensor([[30]]) print(data.item())# 30 # 30 # 30 张量拼接操作 ⚔️张量的拼接方式有两种:CAT、STACK CAT方法是将两个张量按照某一维度进行拼接(类似于积木拼接)STACK方法是将两个张量按照顺序垂直堆叠起来。STACK 方法主要用于将多个张量垂直堆叠在一起形成一个新的、更高维度的张量。这在需要将来自不同来源或具有不同特征集的数据整合到一起时非常有用例如在处理时间序列数据或多通道图像数据时。而 CAT 方法则是在同一维度上水平拼接张量适用于需要扩展特征空间宽度的情况~ torch.cat()   该函数接受两个参数输入张量列表和拼接的维度。以下是一个简单的示例 import torch# 创建两个张量 tensor1 torch.tensor([[1, 2], [3, 4]]) tensor2 torch.tensor([[5, 6], [7, 8]])# 沿着第0维行拼接张量 result torch.cat((tensor1, tensor2), dim0) print(result) # 输出 # tensor([[1, 2], # [3, 4], # [5, 6], # [7, 8]])# 沿着第1维列拼接张量 result torch.cat((tensor1, tensor2), dim1) print(result) # 输出 # tensor([[1, 2, 5, 6], # [3, 4, 7, 8]]) 我们可以打印每个张量的shape来观察一下拼接所发生的变化依次类推dim012位置 import torch data1 torch.randint(0, 10, [3, 5, 4]) data2 torch.randint(0, 10, [3, 5, 4]) data1.cuda() data2.cuda() new_data torch.cat([data1, data2], dim0) print(new_data.shape) # 结果torch.Size([6, 5, 4]) torch.stack()  ⚔️torch.stack函数用于将一系列张量堆叠到一个新的维度。 torch.stack的使用场景通常包括需要增加数据的一个维度时。比如在处理图像数据或者文本数据的时候我们经常需要把二维的数据转换为三维的这时候就可以使用torch.stack来完成这个操作。使用torch.stack可以保留两个信息序列和张量矩阵信息。当我们需要把一系列的二维张量转换为三维的张量时可以使用torch.stack来实现。例如如果我们有两个形状为(3, 3)的二维张量A和B我们可以通过指定dim0来在它们的最前面增加一个新的维度结果张量的形状就会变为(2, 3, 3)。这表明在新的维度上张量的个数是2其它两个维度的大小保持不变。 与torch.cat的区别主要在于torch.cat是在现有的维度上进行拼接。 这意味着使用torch.cat时输入的张量必须在除了拼接维度外的所有其他维度上具有相同的大小。而torch.stack则要求所有输入张量在所有维度上的大小都相同。此外torch.cat不会增加张量的总维度数量它仅仅是在一个指定的维度上扩展了张量的大小。例如如果我们有两个形状为(2, 2, 3)的张量当我们对它们应用torch.cat(dim0)时结果张量的形状会是(4, 2, 3)这里的4表示在指定的维度上元素的数量从原来的2个扩展到了4个。 import torch# 创建两个形状为(3, 3)的张量A和B A torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) B torch.tensor([[10, 11, 12],[13, 14, 15], [16, 17, 18]])# 使用torch.stack将A和B堆叠成一个新的维度dim0表示在最前面增加新的维度 C torch.stack((A, B), dim0) print(C)tensor([[[ 1, 2, 3],[ 4, 5, 6],[ 7, 8, 9]],[[10, 11, 12],[13, 14, 15],[16, 17, 18]]]) 我们可以再观察dim1表示在第二个维度上进行堆叠。 import torchA torch.tensor([[1, 2, 3],[4, 5, 6]]) B torch.tensor([[7, 8, 9], [10, 11, 12]])C torch.stack((A, B), dim1)tensor([[[ 1, 2, 3],[ 7, 8, 9]],[[ 4, 5, 6],[10, 11, 12]]]) 我们可以再观察dim2表示在第三个维度上进行堆叠。 data1 torch.randint(0, 10, [2, 3]) data2 torch.randint(0, 10, [2, 3]) new_data torch.stack([data1, data2], dim2) print(new_data)tensor([[[5, 6],[6, 0],[9, 2]],[[5, 1],[9, 4],[0, 1]]])张量索引操作 张量索引操作允许我们对多维数组中的元素进行访问和操作。张量索引操作是处理多维数据的基础它不仅能够让我们访问和修改数据还能够帮助我们实现各种复杂的数据操作和算法。 我们来看一下张量索引基本操作 简单行、列索引 import torchdata torch.randint(0, 10, [4, 5]) print(data)tensor([[0, 7, 6, 5, 9],[6, 8, 3, 1, 0],[6, 3, 8, 7, 3],[4, 9, 5, 3, 1]]) data[0]    --- tensor([0, 7, 6, 5, 9])data[:, 0] --- tensor([0, 6, 6, 4])data[[0, 1], [1, 2]] 返回 (0, 1)、(1, 2) 两个位置的元素tensor([7, 3])data[[[0], [1]], [1, 2]]   返回 0、1 行的 1、2 列共4个元素 tensor([[7, 6], [8, 3]]) 范围索引  # 前3行的前2列数据 print(data[:3, :2]) # 第2行到最后的前2列数据 print(data[2:, :2])tensor([[0, 7],[6, 8],[6, 3]]) tensor([[6, 3],[4, 9]]) 布尔索引 # 第三列大于5的行数据 print(data[data[:, 2] 5]) # data[:, 2] 5返回了按照这个规则的一列布尔值,再套入到data求出来 类似于pandas求所有行的某一维度5的所有行 # 第二行大于5的列数据 print(data[:, data[1] 5])tensor([[0, 7, 6, 5, 9],[6, 3, 8, 7, 3]]) tensor([[0, 7],[6, 8],[6, 3],[4, 9]]) 多维索引 data torch.randint(0, 10, [3, 4, 5]) print(data) print(- * 50)print(data[0, :, :]) print(data[:, 0, :]) print(data[:, :, 0])结果: tensor([[[2, 4, 1, 2, 3],[5, 5, 1, 5, 0],[1, 4, 5, 3, 8],[7, 1, 1, 9, 9]],[[9, 7, 5, 3, 1],[8, 8, 6, 0, 1],[6, 9, 0, 2, 1],[9, 7, 0, 4, 0]],[[0, 7, 3, 5, 6],[2, 4, 6, 4, 3],[2, 0, 3, 7, 9],[9, 6, 4, 4, 4]]]) -------------------------------------------------- tensor([[2, 4, 1, 2, 3],[5, 5, 1, 5, 0],[1, 4, 5, 3, 8],[7, 1, 1, 9, 9]]) tensor([[2, 4, 1, 2, 3],[9, 7, 5, 3, 1],[0, 7, 3, 5, 6]]) tensor([[2, 5, 1, 7],[9, 8, 6, 9],[0, 2, 2, 9]]) 我们下期一起学习张量的高阶操作
http://www.pierceye.com/news/499937/

相关文章:

  • 做瞹瞹瞹视频免费网站wordpress不提示系统更新
  • 加气站类型的网站建设重庆工程招投标交易信息网
  • 如何做分类网站信息营销产品展示网站模板
  • 做网站用哪种编程语言网店营销策略
  • 已经注册了域名怎么做简单的网站知乎问答网站开发教程
  • html5做手机网站网页设计如何制作背景
  • vs2010网站开发示例wordpress apply filters
  • 产品网站建设建议定制软件的网站
  • 极速彩票网站建设创造网站需要多少钱
  • 不要域名能建网站么工作室建设规划
  • html网站首页图片切换一元购物网站怎么做
  • 焦作网站建设费用wordpress php最大输出变量
  • 移动端高端网站开发做私活的网站
  • 广东专业做网站浙江建设工程信息网高工评选
  • 当阳网站建设电话时尚类网站建设
  • 南平网站建设公司seo中文含义是什么
  • 重庆科技建设信息网站关键词做网站标题是什么意思
  • 潍坊中企动力做的网站怎么样哪个网站做黄金交易最好
  • 徐州金网网站建设西安网站建设制作公司
  • 中小企业网站建设好么做国外网站衣服码数要怎么写
  • 新浪做网站wordpress divi 主题
  • 微网站建设资讯网页游戏开发教程
  • 网站建设评估百度公司地址
  • python 做网站开发吗搜房网网站跳出率
  • 深圳企业模板网站建设做高性能的网站 哪门语言好
  • 网站后台不能上传微信公众平台网页版登陆
  • 广州网站营销seo费用成都建设网站那家好
  • 网站建设规划书结构简单wordpress
  • 域名注册网站哪个好山东淄博网络科技有限公司
  • 固始县网站建设培训怎么制作网站首页