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

如何做网上水果网站系统群晖 wordpress 端口 转发

如何做网上水果网站系统,群晖 wordpress 端口 转发,做网站数据库及相关配置,广州网站设计我选刻搭建模型时,数据都是基于张量形式的表示,网络层与层之间很多都是以不同的shape的方式进行表现和运算。 对张量形状的操作,以便能够更好处理网络各层之间的数据连接。 reshape 函数的用法 reshape 函数可以再保证张量数据不变的前提下改变数…

搭建模型时,数据都是基于张量形式的表示,网络层与层之间很多都是以不同的shape的方式进行表现和运算。

对张量形状的操作,以便能够更好处理网络各层之间的数据连接。


reshape 函数的用法

reshape 函数可以再保证张量数据不变的前提下改变数据的维度,将其转换成指定的形状,在神经网络中经常使用该函数来调节数据的形状,以适配不同网络层之间的数据传递。

import torch 
import numpy as np def test01():torch.manual_seed(0)data = torch.randint(0, 10, [4, 5])# 查看张量的形状print(data.shape, data.shape[0], data.shape[1])  # shape属性可以查看张量的形状print(data.size(), data.size(0), data.size(1))  # size()方法可以查看张量的形状# 修改张量的形状new_data = data.reshape(2, 10) # 两行十列print(new_data)# 注意:转换之后的形状元素个数得等于原来张量的元素个数,不然就报错。上面创建data就是4*5=20个元素# 使用 -1 代替省略的形状new_data = data.reshape(-1, 10) # -1表示自动计算行数print(new_data.shape)  # torch.Size([2, 10])print(new_data)new_data = data.reshape(2, -1) # -1表示自动计算列数print(new_data)if __name__ == "__main__":test01() 

transpose 和 permute 函数的使用

transpose 函数可以实现交换张量形状的指定维度。

例如:一个张量的形状为 (2, 3, 4) 可以通过 transpose 函数把 3 和 4 进行交换,将张量的形状变为 (2, 4, 3)。

permute 函数可以一次交换更多的维度。

本质上都是在修改数据的维度。

import torch 
import numpy as np # transpose 函数
def test01():torch.manual_seed(0)data = torch.randint(0, 10, [3, 4, 5])# new_data = data.reshape(4, 3, 5)  # 重新计算维度# print(new_data.shape)# 直接交换两个维度的值new_data = torch.transpose(data, 0, 1) # 只是将这两个位置进行交换。0表示第0个维度,1表示第1个维度print(new_data.shape)# 缺点:transpose 一次只能交换两个维度# 把数据的形状变成 (4, 5, 3)# 进行第一次交换:(4, 3, 5)# 进行第二次交换:(4, 5, 3)new_data = torch.transpose(data, 0, 1)new_data = torch.transpose(new_data, 1, 2)print(new_data.shape)# permute 函数
def test02():torch.manual_seed(0)data = torch.randint(0, 10, [3, 4, 5])# permute 函数可以一次性交换多个维度new_data = torch.permute(data, [1, 2, 0])print(new_data.shape)if __name__ == "__main__":test02() 

view 和 contigous 函数的用法

view 函数可以用于修改张量的形状,但是其用法比较局限,只能用于存储在整块内存中的张量。

在 PyTorch 中,有些张量是由不同的数据块组成的,它们并没有存储在整块的内存中,view 函数无法对这样的张量进行变形处理。
例如:一个张量经过了 transpose 或者 permute 函数的处理之后,就无法使用 view 函数进行形状操作。

import torch 
import numpy as np # view 函数的使用
def test01():data = torch.tensor([[10, 20, 30], [40, 50, 60]])data = data.view(3, 2)print(data.shape)# 通过 is_contigous 函数来判断张量是否是连续内存空间 (整块的内存)print(data.is_contiguous())# view 函数使用注意
def test02():# 当张量经过 transpose 或者 permute 函数之后,内存空间基本不连续# 此时,必须先把空间连续,才能使用 view 函数进行张量形状操作data = torch.tensor([[10, 20, 30], [40, 50, 60]])data = torch.transpose(data, 0, 1)print(data.is_contiguous())# data = data.view(2, 3)  # 这是报错的data = data.contiguous().view(2, 3)print(data)if __name__ == "__main__":test02() 

squeeze 和 unsqueeze 函数的用法

squeeze 函数用删除 shape 为 1 的维度。

unsqueeze 在每个维度添加1,以增加数据的形状。

import torch 
import numpy as np # squeeze 函数使用
def test01():data = torch.randint(0, 10, [1, 3, 1, 5])print(data.shape)# 维度压缩,默认去掉所有的1的维度new_data = data.squeeze()print(new_data.shape)# 指定去掉某个1的维度new_data = data.squeeze(2)print(new_data.shape)# unsqueeze 函数使用
def test02():data = torch.randint(0, 10, [3, 5])print(data.shape)new_data = data.unsqueeze(0)print(new_data)if __name__ == "__main__":test01() 

总结

  1. reshape 函数可以在保证张量数据不变的前提下改变数据的维度
  2. transpose 函数可以实现交换张量形状的指定维度,permute 可以一次交换更多的维度
  3. view 函数也可以用于修改张量的形状,但是它要求被转换的张量内存必须连续,所以一般配合 contiguous 函数使用。
  4. squeeze 和 unsqueeze 函数可以用来增加或者减少维度。
http://www.dtcms.com/wzjs/822009.html

相关文章:

  • 网站定制设计网页价格多少钱给孩子做衣服的网站
  • 数据统计网站电子商务网站建设参考文献书籍
  • 帮网站做推广赚钱吗医疗网站建设代理商
  • 服装网站建设项目规划天河区建网站
  • 石碣镇网站仿做网页qq登录保护不再开启入口
  • 新网站建设市场深圳网站备案时间
  • 做网站公司找哪家公司租号网站开发成本
  • 网站费用明细朋友圈信息流广告投放价格
  • 免费企业网站模板成都高投建设开发有限公司网站
  • 高端网站建设公司排行网站建设与管理课程总结
  • 单纯做seo能否提升网站流量建设银行wap网站
  • 沈阳市城乡建设局网站设计师的职责
  • 公众号做视频网站wordpress文件wordpress
  • WordPress创建的网站爱奇艺号自媒体平台注册
  • 做网站一般图片的比例百度一下首页
  • 加快政务公开网站建设怎么提高网站排名
  • 电商网站开发设计方法是在百度中建设网站
  • 网站建设有哪些荣誉福州网站建设需要多少钱
  • 2345网址导航官网下载安装关键词营销优化
  • 网站建设最常见的问题织梦网络公司网站
  • 北京专业网站设计推荐用vs2012做网站案例
  • 网站做关键词排名有必要吗网站维护工作内容
  • 东莞公司想建网站科技有限公司可以做网站建设吗?
  • 山东机关建设网站怎么给一个花店做网站建设
  • 个人 可以做网站备案吗做视频采集网站违法吗
  • 网站建设按什么合同交印花税有用dojo做的网站吗
  • 大学代作作业的网站做公众号要不要有自己的网站
  • 开发网站去哪里学wordpress浏览pdf
  • 从化营销网站建设在线培训平台有哪些
  • 建设行政管理部门网站怎们自己做网站