范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

5个PyTorch中的处理张量的基本函数

  每个深度学习初学者都应该知道这5个Pytorch 的基本函数。
  能够以准确有效的方式构建神经网络是招聘人员在深度学习工程师中最受追捧的技能之一。PyTorch 是一个 主要用于深度学习的Python 库。 PyTorch 最基本也是最重要的部分之一是创建张量,张量是数字、向量、矩阵或任何 n 维数组。在构建神经网络时为了降低计算速度必须避免使用显式循环,我们可以使用矢量化操作来避免这种循环。在构建神经网络时,足够快地计算矩阵运算的能力至关重要。
  "为什么不使用 NumPy 库呢?"
  对于深度学习,我们需要计算模型参数的导数。 PyTorch 提供了在反向传播时跟踪导数的能力而 NumPy 则没有,这在Pytorch中被称为"Auto Grad"。PyTorch 为使用 GPU 的快速执行提供了内置支持。这在训练模型方面至关重要。由于 Numpy 缺乏将其计算转移到 GPU 的能力,因此训练模型的时间最终会变得非常大。
  所有使用 PyTorch 的深度学习项目都从创建张量开始。让我们看看一些必须知道的函数,它们是任何涉及构建神经网络的深度学习项目的支柱。 torch.tensor()  torch.sum()  torch.index_select()  torch.stack()  torch.mm()
  在安装完Pytorch后,在代码中可以直接导入: # Import torch and other required modules import torchtorch.tensor()
  首先,我们定义了一个辅助函数,describe (x),它将总结张量 x 的各种属性,例如张量的类型、张量的维度和张量的内容。 # Helper function def describe(x):   print("Type: {}".format(x.type()))   print("Shape/size: {}".format(x.shape))   print("Values:  {}".format(x)
  使用 torch.Tensor 在 PyTorch 中创建张量
  PyTorch 允许我们使用 torch 包以多种不同的方式创建张量。 创建张量的一种方法是通过指定其维度来初始化一个随机张量 describe(torch.Tensor(2, 3))
  使用 Python 列表以声明方式创建张量
  我们还可以使用 python 列表创建张量。 我们只需要将列表作为参数传递给函数,我们就有了它的张量形式。 x = torch.Tensor([[1, 2, 3],[4, 5, 6]]) describe(x)
  使用 NumPy 数组创建张量
  我们也可以从NumPy 数组中创建PyTorch 张量。 张量的类型是 Double Tensor 而不是默认的 Float Tensor。 这对应于 NumPy 的数据类型是float64,如下所示。 import numpy as np npy = np.random.rand(2, 3) describe(torch.from_numpy(npy))
  我们不能用张量做什么?张量必须是实数或复数,不应是字符串或字符。 torch.tensor([[1, 2], [3, 4, 5]])   --------------------------------------------------------------------------- ValueError                                Traceback (most recent call last)  in        1 # Example 3 - breaking (to illustrate when it breaks) ----> 2 torch.tensor([[1, 2], [3, 4, 5]])  ValueError: expected sequence of length 2 at dim 1 (got 3)
  torch.tensor() 构成了任何 PyTorch 项目的核心,从字面上看,因为它就是张量。 torch.sum()
  此函数返回输入张量中所有元素的总和。 describe(torch.sum(x, dim=0,keepdims=True))
  如果你了解 NumPy ,可能已经注意到,对于 2D 张量,我们将行表示为维度 0,将列表示为维度 1。torch.sum() 函数允许我们计算行和列的总和。
  我们还为 keepdims 传递 True 以保留结果中的维度。 通过定义 dim = 1 我们告诉函数按列折叠数组。 torch.sum(npy,dim=1,keepdims=True)  --------------------------------------------------------------------------- TypeError                                 Traceback (most recent call last)  in ()       1 # Example 3 - breaking (to illustrate when it breaks) ----> 2 torch.sum(npy,dim=1,keepdims=True)  TypeError: sum() received an invalid combination of arguments - got (numpy.ndarray, keepdims=bool, dim=int), but expected one of:  * (Tensor input, *, torch.dtype dtype)       didn"t match because some of the keywords were incorrect: keepdims, dim  * (Tensor input, tuple of ints dim, bool keepdim, *, torch.dtype dtype, Tensor out)  * (Tensor input, tuple of names dim, bool keepdim, *, torch.dtype dtype, Tensor out)
  该函数在计算指标和损失函数时非常有用。 torch.index_select()
  这个函数返回一个新的张量,该张量使用索引中的条目(LongTensor)沿维度 dim 对输入张量进行索引。 indices = torch.LongTensor([0, 2]) describe(torch.index_select(x, dim=1, index=indices))
  我们可以将索引作为张量传递并将轴定义为 1,该函数返回一个新的张量大小 rows_of_original_tensor x length_of_indices_tensor。 indices = torch.LongTensor([0, 0]) describe(torch.index_select(x, dim=0, index=indices))
  我们可以将索引作为张量传递并将轴定义为 0,该函数返回大小为 columns_of_original_tensor x length_of_indices_tensor 的新张量。 indices = torch.FloatTensor([0, 2]) describe(torch.index_select(x, dim=1, index=indices))
  此函数在张量的非连续索引这种复杂索引中很有用。 torch.stack()
  这将沿新维度连接一系列张量。 describe(torch.stack([x, x, x],dim = 0))
  我们可以将我们想要连接的张量作为一个张量列表传递,dim 为 0,以沿着行堆叠它。 describe(torch.stack([x, x, x],dim = 1))
  我们可以将我们想要连接的张量作为一个张量列表传递,dim 为 1,以沿着列堆叠它。 y = torch.tensor([3,3]) describe(torch.stack([x, y, x],dim = 1))  -------------------------------------------------------------------------- RuntimeError                              Traceback (most recent call last)  in ()       1 # Example 3 - breaking (to illustrate when it breaks)       2 y = torch.tensor([3,3]) ----> 3 describe(torch.stack([x, y, x],dim = 1))  RuntimeError: stack expects each tensor to be equal size, but got [2, 3] at entry 0 and [2] at entry 1
  该函数与torch.index_select()结合使用非常有用,可以压扁矩阵。 torch.mm()
  此函数执行矩阵的矩阵乘法。 mat1 =torch.randn(3,2) describe(torch.mm(x, mat1))
  只需将矩阵作为参数传递,我们就可以轻松地执行矩阵乘法,该函数将产生一个新的张量作为两个矩阵的乘积。 mat1 = np.random.randn(3,2) mat1 = torch.from_numpy(mat1).to(torch.float32) describe(torch.mm(x, mat1))
  在上面的例子中,我们定义了一个 NumPy 数组然后将其转换为 float32 类型的张量。 现在我们可以成功地对张量执行矩阵乘法。 两个张量的数据类型必须匹配才能成功操作。 mat1 =torch.randn(2,3) describe(torch.mm(x, mat1))  --------------------------------------------------------------------------- RuntimeError                              Traceback (most recent call last)  in ()       1 # Example 3 - breaking (to illustrate when it breaks)       2 mat1 =torch.randn(2,3) ----> 3 describe(torch.mm(x, mat1))  RuntimeError: mat1 and mat2 shapes cannot be multiplied (2x3 and 2x3)
  为了执行成功的矩阵乘法运算,矩阵1的列和矩阵2的行必须匹配。 torch.mm() 函数遵循的是矩阵乘法的基本规则。 即使矩阵的顺序相同,它仍然不会自动与另一个矩阵的转置相乘,用户必须手动定义它。
  为了在反向传播时计算导数,必须能够有效地执行矩阵乘法,这就是 torch.mm () 出现的地方。 总结
  我们对 5 个基本 PyTorch 函数的研究到此结束。 从基本的张量创建到具有特定用例的高级和鲜为人知的函数,如 torch.index_select (),PyTorch 提供了许多这样的函数,使数据科学爱好者的工作更轻松。
  作者:Inshal Khan
  最后如果你对参加Kaggle比赛感兴趣,请私信我,邀你进入Kaggle比赛交流群

小米多项外观专利公开,模块化或成新方向,侧滑设计难成主流都在说小米手机没有设计可言,但这是最大的误区,小米在外观方面其实是很有创新力的。关于外观专利方面,小米走在了前列,未来有望量产。在部分消费者眼中,颜值往往是第一购买力,一款手机能否快讯红米K40轻奢版曝光荣耀50换用7系芯片小米CC10配置曝光你好,今天是2021年5月18日,我是给个机会君,为你带来今日科技数码快讯。小米CC10配置曝光小米CC系列主打拍照能力,经过两个版本的迭代,可以看到小米CC系列的外观都做得非常漂6G争夺战早已打响,老美领先,日本已投入500亿二十一世纪以来,互联网迎来爆发期,包括中国在内的全球网民数量日益暴增,截止目前为止互联网已经渗透到了人们生活的各个网络。短短十几年的时间,移动互联网技术从2G到4G,再到如今5G的2021年618有什么比较好的千元机推荐吗?千元机市场,也是厂家比较在意的战场,竞争的激烈程度,仅次于2000元至3000元档位。这个价位段的推荐的手机,大概分成两个部分999元左右1500元至1799元左右。先来推荐999不惑创投完成15。65亿元新一期主基金募集5月18日,不惑创投宣布完成总规模15。65亿元的新一期主基金募集,其中包括不惑人民币主基金2期,最终完成募集规模为8。18亿人民币,以及不惑美元主基金1期,最终完成募集规模为1。魅族手机BUG导致手机软件疯狂闪退,到底是谁的锅?我的16X更新了还是会自动静音,只是静音频率少了,但是我竟然选择原谅魅族,也许这就是喜欢用魅族吧捂脸2013用到现在了。系统的问题吗,可以先用360卫士进行扫描修复和优化来试试16华为P50配置曝光,芯片数量有限,你们会购买吗?目前华为P50系列具体规格还不清楚,按照惯例华为P50系列会有三款产品,分别是华为P50华为P50Pro和华为P50Pro,处理器部分,超大杯肯定是麒麟9000处理器,大杯可能采用蓝牙耳机行业市场规模如何?2016年,苹果凭借其推出的AirpodsTWS耳机产品的时尚外观设计强大续航能力和稳定便捷的使用方式以及与iOS生态的高度融合,迅速掀起了TWS行业热潮。TWS耳机让耳机从手机配iOS14。6RC版本发布,值得更新苹果在今天凌晨发布了iOS14。6RC版本,也就是纯正式版,如果没有意外,下周发布的版本应该和这个版本是一样的。iOS14。6RC版本更新了以下内容1苹果卡最多可与五人共享,包括您高颜值荣耀Play5今晚亮相!66W快充加持7。46mm轻薄设计今天,大家期待已久的荣耀Play5就要正式亮相了。66W旗舰级快充7。46mm轻薄手感将是新机的最大亮点,6400万超清四摄6。53英寸OLED真彩屏,也将为大家带来均衡的使用体验张山领价值观怎样能更好落地?作者张山领出品茅庐学堂之前我在做企业咨询的过程当中,在各个场合面向企业家讲课,大家问得比较多的也是对阿里比较好奇的一个点,就是阿里巴巴的价值观是怎么落地的?今天,我就给大家分享一下
夸,夸,夸的超乎你想象!现在的广告五花八门,把各种产品吹上天,形形色色的红包游戏夸的比城市拆迁来钱快,让你玩到手软,玩到眼花。到账收入扔到地上没人捡。招工广告工资待遇每月两千的,为了让你提高积极性定位于2折叠收纳大吸力睿米NANO车载吸尘器随身带随手吸CiaoBella,我是老房。自从家里有了娃,原本只需一周一次的家庭大扫除,直接升级为一天多次都不够。尤其是在臭小子学会走路以后,简直就是一个行走的垃圾制造器,吃饭各种掉渣玩具到处一行代码搞定的事还用个锤子的PS啊作者豆豆来源Python技术在我们的日常生活和工作中有不少场景需要简单处下理图片,很多人都是依赖PS美图秀秀等各种图像处理工具,殊不知在你打开软件的一瞬间Python就已经将图片处预算30万以内,首选宝马X1和奥迪Q3林肯冒险家了解一下曾经奔驰注重乘坐舒适,宝马注重操控乐趣,奥迪注重科技氛围,而如今BBA内饰上大塑料已经司空见惯,特别是在入门款车型上内饰用料更是寒酸。预算在30万以内,如果在豪华品牌SUV领域当中在沃尔沃保养爱车,专业贴心,省时省力以往,消费者在选购汽车的时候最关注的当属汽车的外形性能动力舒适性等方面,这些项目直接影响大家在驾乘爱车时的体验。但随着人们用车需求的不断提升,更多消费者对于汽车的售后和保养也越来越沃尔沃v60表现如何?车主分享用车感受,原来v60如此优秀对于汽车产业来说,消费者的需求就是车企发展的方向。只有全面了解消费者的需求,车企才能制造出消费者喜爱的车型。作为一个对消费者需求洞察精准的车企,沃尔沃制造出了备受消费者喜爱的各种车提了沃尔沃轿车S60之后,车主觉得这车买的太值了选车是个挺麻烦的事,选定一个车型之后,你会发现市场上有很多同类型不同品牌的车。在挑选的过程中,很容易挑花眼。我最近在选车的时候就遇到了这样的情况,看看这个觉得不错,看看那个觉得也挺一次学会两种方式将pyton打成exe作者某某白米饭来源Python技术python可以做网站应用,也可以做客户端应用。但是客户端应用需要运行py脚本,如果用户不懂python就是一件比较麻烦的事情。幸好pyton有第新手必读真无线蓝牙耳机哪个好?三大奇招避开不良商家真无线蓝牙耳机一上线就备受关注,因为真无线蓝牙耳机简单易用,方便携带,加上很多真无线蓝牙耳机都配备了收纳盒,能够随时给耳机充电,再也不用担心总是没电了。那么真无线蓝牙耳机哪个好呢?真无线蓝牙耳机排行榜音质炸裂的五大爆款耳机真无线蓝牙耳机可以说是蓝牙耳机的终极形态了,左右耳塞之间也没有了线材的连接,更加便捷!今天小编结合使用过的几十款真无线蓝牙耳机,给大家整理了此次的音质排行榜,希望能帮到大家选购到称蔚来等车企回应特斯拉降价,国产新能源车有望崛起特斯拉在中国全面降价,降价后的价格直逼蔚来等面向高端市场的新能源车企,此前,造车新势力的代表,蔚来汽车创始人李斌就此事进行了回应。蔚来ES8蔚来汽车从2014年至今,蔚来的进步可圈