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

微信微网站建设平台做搬家服务网站问卷调查结果

微信微网站建设平台,做搬家服务网站问卷调查结果,dede 网站地图生成,网络推广培训班哪家好本文目录#xff1a; 一、张量数值运算#xff08;一#xff09;基本运算#xff08;二#xff09;点乘运算#xff08;三#xff09;矩阵乘法**扩展**#xff1a;广播规则 二、运算函数三、索引操作#xff1a;类似于loc[ ]、iloc[ ]四、形状操作#xff08;一… 本文目录 一、张量数值运算一基本运算二点乘运算三矩阵乘法**扩展**广播规则 二、运算函数三、索引操作类似于loc[ ]、iloc[ ]四、形状操作一reshape二view 五、squeeze与unsqueeze六、transpose和permute七、张量拼接操作一cat/concat二stack 一、张量数值运算 一基本运算 、-、*、/、add、sub、mul、div、neg 例 data torch.randint(0, 10, [2, 3]) print(data) # 1. 不修改原数据 new_data data.add(10) # 等价 new_data data 10 print(new_data) # 2. 直接修改原数据 注意: 带下划线的函数为修改原数据本身 data.add_(10) # 等价 data 10 print(data) # 3. 其他函数 print(data.sub(100)) print(data.mul(100)) print(data.div(100)) print(data.neg()) #对元素取负二点乘运算 点乘Hadamard为元素间相乘指的是相同形状的张量对应位置的元素相乘使用mul和运算符 * 实现。 例 data1 torch.tensor([[1, 2], [3, 4]]) data2 torch.tensor([[5, 6], [7, 8]]) # 第一种方式 data torch.mul(data1, data2) print(data) # 第二种方式 data data1 * data2 print(data)三矩阵乘法 要求第一个矩阵 shape: (n, m)第二个矩阵 shape: (m, p), 两个矩阵点积运算 shape 为: (n, p)。运算符包括、matmul要求至少2维向量对最后两个维度进行矩阵乘法其他维度【如果有】按广播规则处理。、dot仅针对1维张量 例 # 点积运算 data1 torch.tensor([[1, 2], [3, 4], [5, 6]]) data2 torch.tensor([[5, 6], [7, 8]]) # 方式一: data3 data1 data2 print(data3--, data3) # 方式二: data4 torch.matmul(data1, data2) print(data4--, data4)扩展广播规则 NumPy、PyTorch、TensorFlow 等科学计算库中的一种重要机制用于自动扩展不同形状的张量或数组使它们能够按元素进行运算如加减乘除、矩阵乘法等。它的核心目的是简化代码避免显式复制数据同时保持计算效率。 例 import numpy as npa np.array([1, 2, 3]) # shape (3,) b 2 # shape () 标量 c a b # 广播b 被扩展为 [2, 2, 2] print(c) # 输出: [3 4 5]a np.array([[1], [2], [3]]) # shape (3, 1) b np.array([10, 20]) # shape (2,) c a b # 广播步骤# 1. a 扩展为 (3, 2): [[1, 1], [2, 2], [3, 3]]# 2. b 扩展为 (3, 2): [[10, 20], [10, 20], [10, 20]] print(c) # 输出: # [[11 21] # [12 22] # [13 23]]a np.random.rand(2, 1, 3) # shape (2, 1, 3) b np.random.rand(4, 3) # shape (4, 3) c a b # 广播步骤# 1. a 扩展为 (2, 4, 3)# 2. b 扩展为 (2, 4, 3) print(c.shape) # 输出: (2, 4, 3)二、运算函数 min、sum、max、pow。。。。。。 dim0按列计算dim1按行计算。 例 import torchdata torch.randint(0, 10, [2, 3], dtypetorch.float64) print(data) # 1. 计算均值 # 注意: tensor 必须为 Float 或者 Double 类型 print(data.mean()) print(data.mean(dim0)) # 按列计算均值 print(data.mean(dim1)) # 按行计算均值 # 2. 计算总和 print(data.sum()) print(data.sum(dim0)) print(data.sum(dim1)) # 3. 计算平方 print(torch.pow(data2)) # 4. 计算平方根 print(data.sqrt()) # 5. 指数计算, e^n 次方 print(data.exp()) # 6. 对数计算 print(data.log()) # 以 e 为底 print(data.log2()) print(data.log10())三、索引操作类似于loc[ ]、iloc[ ] 例 import torch# 随机生成数据 data torch.randint(0, 10, [4, 5]) print(data)# 1.简单行、列索引 print(data[0]) print(data[:, 0])# 2.列表索引 # 返回 (0, 1)、(1, 2) 两个位置的元素 print(data[[0, 1], [1, 2]]) # 返回 0、1 行的 1、2 列共4个元素 print(data[[[0], [1]], [1, 2]])# 3.范围索引 # 前3行的前2列数据 print(data[:3, :2]) # 第2行到最后的前2列数据 print(data[2:, :2])# 4.布尔索引 # 第三列大于5的行数据 print(data[data[:, 2] 5]) # 第二行大于5的列数据 print(data[:, data[1] 5])# 5.多维索引 # 随机生成三维数据 data torch.randint(0, 10, [3, 4, 5]) print(data) # 获取0轴上的第一个数据 print(data[0, :, :]) # 获取1轴上的第一个数据 print(data[:, 0, :]) # 获取2轴上的第一个数据 print(data[:, :, 0])四、形状操作 一reshape 保证数据不变的情况下改变形状可处理连续变量也可处理非连续变量 例 import torchdata torch.tensor([[10, 20, 30], [40, 50, 60]]) # 1. 使用 shape 属性或者 size 方法都可以获得张量的形状 print(data.shape, data.shape[0], data.shape[1]) print(data.size(), data.size(0), data.size(1))# 2. 使用 reshape 函数修改张量形状 new_data data.reshape(1, 6) print(new_data.shape)二view 只可处理连续变量处理前可用is_contiguous作连续性判断。另外当张量的底层数据在内存中的存储顺序与其逻辑顺序不一致view函数无法对这样的张量进行变形处理例如: 一个张量经过了 transpose 或者 permute 函数的处理之后就无法使用 view 函数进行形状操作。 例 # 1 一个张量经过了 transpose 或者 permute 函数的处理之后就无法使用 view 函数进行形状操作 若要使用view函数, 需要使用contiguous() 变成连续以后再使用view函数。 # 2 判断张量是否连续 data torch.tensor([[10, 20, 30],[40, 50, 60]]) print(data---, data, data.shape) # 1 判断张量是否连续 print(data.is_contiguous()) # True # 2 view mydata2 data.view(3, 2) print(mydata2---, mydata2, mydata2.shape) # 3 判断张量是否连续 print(mydata2.is_contiguous()---, mydata2.is_contiguous()) # 4 使用 transpose 函数修改形状 mydata3 torch.transpose(data, 0, 1) print(mydata3---, mydata3, mydata3.shape) print(mydata3.is_contiguous()---, mydata3.is_contiguous()) # 5 需要先使用 contiguous 函数转换为连续的张量再使用 view 函数 print (mydata3.contiguous().is_contiguous()) mydata4 mydata3.contiguous().view(2, 3) print(mydata4---, mydata4.shape, mydata4)五、squeeze与unsqueeze squeeze删除指定位置形状为1的维度不指定位置删除所有形状为1的维度降维 unsqueeze在指定位置添加形状为1的维度升维 注意reshape、切片、view也可通过改变形状变相实现升维降维功能但不是标准用法。 例 mydata1 torch.tensor([1, 2, 3, 4, 5]) print(mydata1---, mydata1.shape, mydata1) # 一个普通的数组 1维数据 mydata2 mydata1.unsqueeze(dim0) print(在0维度上 拓展维度, mydata2, mydata2.shape) # 1*5 mydata3 mydata1.unsqueeze(dim1) print(在1维度上 拓展维度, mydata3, mydata3.shape) # 5*1 mydata4 mydata1.unsqueeze(dim-1) print(在-1维度上 拓展维度, mydata4, mydata4.shape) # 5*1 mydata5 mydata4.squeeze() print(压缩维度, mydata5, mydata5.shape) # 1*5六、transpose和permute transpose实现交换张量形状的指定维度, 例如: 一个张量的形状为 (2, 3, 4) 把 3 和 4 进行交换, 将张量的形状变为 (2, 4, 3) permute一次交换更多的维度。 例 data torch.tensor(np.random.randint(0, 10, [3, 4, 5])) print(data shape:, data.size()) # 1. 交换1和2维度 mydata2 torch.transpose(data, 1, 2) print(mydata2.shape---, mydata2.shape) # 2. 将data 的形状修改为 (4, 5, 3), 需要变换多次 mydata3 torch.transpose(data, 0, 1) mydata4 torch.transpose(mydata3, 1, 2) print(mydata4.shape---, mydata4.shape) # 3. 使用 permute 函数将形状修改为 (4, 5, 3) # 3-1 方法1 mydata5 torch.permute(data, [1, 2, 0]) print(mydata5.shape---, mydata5.shape) # 3-2 方法2 mydata6 data.permute([1, 2, 0]) print(mydata6.shape---, mydata6.shape)七、张量拼接操作 一cat/concat 沿着现有维度连接一系列张量。所有输入张量除了指定的拼接维度外其他维度必须匹配即指定拼接维度可不一样其它维度必须一样。例 import torchdata1 torch.randint(0, 10, [1, 2, 3]) data2 torch.randint(0, 10, [1, 2, 3]) print(data1) print(data2) # 1. 按0维度拼接 new_data torch.cat([data1, data2], dim0) print(new_data) print(new_data.shape) # 2. 按1维度拼接 new_data torch.cat([data1, data2], dim1) print(new_data) print(new_data.shape) # 3. 按2维度拼接 new_data torch.cat([data1, data2], dim2) print(new_data) print(new_data.shape)二stack 在一个新的维度上连接一系列张量这会增加一个新维度所有输入张量的形状必须完全相同。 二维张量比如2,3之所以在stack上有0、1、2三个维度拼接方式是因为stack可以在末尾创造一个新维度。 stack关于二维张量的拼接操作 例 import torch data1 torch.randint(0, 10, [2, 3]) data2 torch.randint(0, 10, [2, 3]) print(data1) print(data2) # 1. 在0维度上拼接 new_data torch.stack([data1, data2], dim0) print(new_data) print(new_data.shape) # 2. 在1维度上拼接 new_data torch.stack([data1, data2], dim1) print(new_data) print(new_data.shape) # 3. 在2维度上拼接 new_data torch.stack([data1, data2], dim2) print(new_data) print(new_data.shape)今天的分享到此结束。
http://www.hkea.cn/news/14275685/

相关文章:

  • 做便宜的宝贝的网站如何给网站做关键词优化
  • 做毕设好的网站湖南建设厅官方网站
  • 阿里云可以建设网站吗运城网站建设公司有多少
  • qq说说赞在线自助下单网站郑州建设信息网可以领证书吗
  • 建设部2018年工作要点网站十大app排行榜
  • 建设网站费用入会计分录做h5的网站页面设计
  • 崇信县门户网站苏州建设网官网
  • asp模版网站如何做优化统一汤达人选择她做汤面活动网站
  • 什么公司做网站出名盛锡福网站
  • 免费发软文的网站湖南软件开发
  • 建设工程合同 网站中小型公司网络设计方案
  • phpcms做网站好吗房地产中介网站
  • 搭建网站程序定州建设局网站
  • 家装设计效果图网站泰安最新通知
  • 网站建设职业去哪里上班0531建设网站
  • 有哪些网站做的比较好wordpress 开发框架
  • 简单三栏网站网站产品页面设计
  • 淮安建设局网站asp.net视频网站模板下载
  • 网赢天下深圳网站建设网站怎么申请微博登录
  • 二次元网站模板信息流广告是什么意思?
  • 福建省建设职业管理中心网站网络营销推广岗位
  • 网站建设实例教程 pdf网络营销软件推广注册赚钱
  • 机械外贸网站竞价托管资讯
  • 坪山网站建设行情网站建设环境搭建心得体会
  • 网站推广公司新锐alexa排名查询的特点
  • 北京做机柜空调的网站网页设计如何设置背景
  • 黔东南网站开发优化大师tv版
  • 校园网站建设意义环保网站查询碾米是否做备案
  • 关于高校网站建设论文的总结住房和城乡建设部资质延期
  • 诚信企业品牌网站建设网络营销方案的传播