返回顶部
首页 > 资讯 > 精选 >使用PyTorch求平方根报错如何解决
  • 735
分享到

使用PyTorch求平方根报错如何解决

2023-06-15 02:06:12 735人浏览 八月长安
摘要

使用PyTorch求平方根报错如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。问题描述初步使用PyTorch进行平方根计算,通过range()创建一个张量,然后对其求

使用PyTorch求平方根报错如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

问题描述

初步使用PyTorch进行平方根计算,通过range()创建一个张量,然后对其求平方根。

a = torch.tensor(list(range(9)))b = torch.sqrt(a)

报出以下错误:

RuntimeError: sqrt_vml_cpu not implemented for 'Long'

原因

Long类型的数据不支持log对数运算, 为什么Tensor是Long类型? 因为创建List数组时默认使用的是int, 所以从List转成torch.Tensor后, 数据类型变成了Long。

print(a.dtype)

torch.int64

解决方法

提前将数据类型指定为浮点型, 重新执行:

b = torch.sqrt(a.to(torch.double))print(b)

tensor([0.0000, 1.0000, 1.4142, 1.7321, 2.0000, 2.2361, 2.4495, 2.6458, 2.8284], dtype=torch.float64)

补充:pytorch20 pytorch常见运算详解

矩阵与标量

这个是矩阵(张量)每一个元素与标量进行操作。

import torcha = torch.tensor([1,2])print(a+1)>>> tensor([2, 3])

哈达玛积

这个就是两个相同尺寸的张量相乘,然后对应元素的相乘就是这个哈达玛积,也成为element wise。

a = torch.tensor([1,2])b = torch.tensor([2,3])print(a*b)print(torch.mul(a,b))>>> tensor([2, 6])>>> tensor([2, 6])

这个torch.mul()和*是等价的。

当然,除法也是类似的:

a = torch.tensor([1.,2.])b = torch.tensor([2.,3.])print(a/b)print(torch.div(a/b))>>> tensor([0.5000, 0.6667])>>> tensor([0.5000, 0.6667])

我们可以发现的torch.div()其实就是/, 类似的:torch.add就是+,torch.sub()就是-,不过符号的运算更简单常用。

矩阵乘法

如果我们想实现线性代数中的矩阵相乘怎么办呢?

这样的操作有三个写法:

torch.mm()

torch.matmul()

@,这个需要记忆,不然遇到这个可能会挺蒙蔽的

a = torch.tensor([[1.],[2.]])b = torch.tensor([2.,3.]).view(1,2)print(torch.mm(a, b))print(torch.matmul(a, b))print(a @ b)

使用PyTorch求平方根报错如何解决

这是对二维矩阵而言的,假如参与运算的是一个多维张量,那么只有torch.matmul()可以使用。等等,多维张量怎么进行矩阵的乘法?在多维张量中,参与矩阵运算的其实只有后两个维度,前面的维度其实就像是索引一样,举个例子:

a = torch.rand((1,2,64,32))b = torch.rand((1,2,32,64))print(torch.matmul(a, b).shape)>>> torch.Size([1, 2, 64, 64])

使用PyTorch求平方根报错如何解决

a = torch.rand((3,2,64,32))b = torch.rand((1,2,32,64))print(torch.matmul(a, b).shape)>>> torch.Size([3, 2, 64, 64])

这样也是可以相乘的,因为这里涉及一个自动传播Broadcasting机制,这个在后面会讲,这里就知道,如果这种情况下,会把b的第一维度复制3次 ,然后变成和a一样的尺寸,进行矩阵相乘。

幂与开方

print('幂运算')a = torch.tensor([1.,2.])b = torch.tensor([2.,3.])c1 = a ** bc2 = torch.pow(a, b)print(c1,c2)>>> tensor([1., 8.]) tensor([1., 8.])

和上面一样,不多说了。开方运算可以用torch.sqrt(),当然也可以用a**(0.5)。

对数运算

在上学的时候,我们知道ln是以e为底的,但是在pytorch中,并不是这样。

pytorch中log是以e自然数为底数的,然后log2和log10才是以2和10为底数的运算。

import numpy as npprint('对数运算')a = torch.tensor([2,10,np.e])print(torch.log(a))print(torch.log2(a))print(torch.log10(a))>>> tensor([0.6931, 2.3026, 1.0000])>>> tensor([1.0000, 3.3219, 1.4427])>>> tensor([0.3010, 1.0000, 0.4343])

近似值运算

.ceil() 向上取整

.floor()向下取整

.trunc()取整数

.frac()取小数

.round()四舍五入

.ceil() 向上取整.floor()向下取整.trunc()取整数.frac()取小数.round()四舍五入

a = torch.tensor(1.2345)print(a.ceil())>>>tensor(2.)print(a.floor())>>> tensor(1.)print(a.trunc())>>> tensor(1.)print(a.frac())>>> tensor(0.2345)print(a.round())>>> tensor(1.)

剪裁运算

这个是让一个数,限制在你自己设置的一个范围内[min,max],小于min的话就被设置为min,大于max的话就被设置为max。这个操作在一些对抗生成网络中,好像是WGAN-GP,通过强行限制模型的参数的值。

a = torch.rand(5)print(a)print(a.clamp(0.3,0.7))

使用PyTorch求平方根报错如何解决

pytorch的优点

1.PyTorch是相当简洁且高效快速的框架;2.设计追求最少的封装;3.设计符合人类思维,它让用户尽可能地专注于实现自己的想法;4.与Google的Tensorflow类似,FaiR的支持足以确保PyTorch获得持续的开发更新;5.PyTorch作者亲自维护的论坛 供用户交流和求教问题6.入门简单

关于使用PyTorch求平方根报错如何解决问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 使用PyTorch求平方根报错如何解决

本文链接: https://lsjlt.com/news/276641.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用PyTorch求平方根报错如何解决
    使用PyTorch求平方根报错如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。问题描述初步使用PyTorch进行平方根计算,通过range()创建一个张量,然后对其求...
    99+
    2023-06-15
  • PyTorch平方根报错的处理方案
    问题描述 初步使用PyTorch进行平方根计算,通过range()创建一个张量,然后对其求平方根。 a = torch.tensor(list(range(9))) b = to...
    99+
    2024-04-02
  • 使用PyTorch训练LSTM时出现loss.backward()报错如何解决
    使用PyTorch训练LSTM时出现loss.backward()报错如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。正确做法:LSRM / RNN模...
    99+
    2023-06-15
  • java项目中如何使用平方根
    这期内容当中小编将会给大家带来有关java项目中如何使用平方根,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。java 中平方根(sqrt)算法平方根(sqrt, square root)是数学中常见的数学...
    99+
    2023-05-31
    java 平方根 ava
  • pytorch cuda安装报错的解决方法
    目录一、按照cuda版本在官网找命令二、换源三、Bug描述四、解决方法五、查看是否使用GPU总结2022.12.8在win+cuda11.8下安装最新Pytorch GPU版时遇到包...
    99+
    2023-01-07
    pytorch cuda安装 Pytorch cuda pytorch调用cuda
  • 使用chatgpt报错如何解决
    今天小编给大家分享一下使用chatgpt报错如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-02-20
    chatgpt
  • Pytorch平均池化nn.AvgPool2d()如何使用
    这篇文章主要介绍了Pytorch平均池化nn.AvgPool2d()如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Pytorch平均池化nn.AvgPool2d()如何使用文章都会有所收获,下面我们一起...
    99+
    2023-07-05
  • 如何解决linux使用cp报错
    本篇文章为大家展示了如何解决linux使用cp报错,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我第一个想到的是:可能ioctl可以检查文件。可惜我猜错了,看了一下cp的源码,原来如果一个文件正在运...
    99+
    2023-06-13
  • weblogic使用xmlbeans5报错如何解决
    在WebLogic中使用XMLBeans 5时报错,可能是由于WebLogic的类加载机制导致的冲突。您可以尝试以下解决方法:1. ...
    99+
    2023-09-01
    weblogic
  • nginx使用rewrite报错如何解决
    今天小编给大家分享一下nginx使用rewrite报错如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。问题描述由于本人...
    99+
    2023-07-05
  • tp5使用php7.2.15报错如何解决
    这篇文章主要介绍“tp5使用php7.2.15报错如何解决”,在日常操作中,相信很多人在tp5使用php7.2.15报错如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”tp5使用php7.2.15报错如...
    99+
    2023-07-05
  • anaconda安装pytorch报错找不到包如何解决
    这篇“anaconda安装pytorch报错找不到包如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“anaconda安...
    99+
    2023-07-05
  • AJAX中Get请求报错404如何解决
    本篇内容主要讲解“AJAX中Get请求报错404如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“AJAX中Get请求报错404如何解决”吧!项目结构主要项目结构javavoResultIn...
    99+
    2023-07-05
  • 安装pytorch时报sslerror错误的解决方案
    首先说一下 ,我是用的anaconda3装的pytorch 为了方便建议你也安装一个。 其实这个挺简单的,你找找“c:/user/你的用户名/”目录下有没有一个叫 .condarc ...
    99+
    2024-04-02
  • PyTorch训练LSTM时loss.backward()报错的解决方案
    训练用PyTorch编写的LSTM或RNN时,在loss.backward()上报错: RuntimeError: Trying to backward through the g...
    99+
    2024-04-02
  • 如何解决安装pytorch时报sslerror错误的问题
    这篇文章给大家分享的是有关如何解决安装pytorch时报sslerror错误的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先说一下 ,我是用的anaconda3装的pytorch为了方便建议你也安装一个。...
    99+
    2023-06-15
  • vue3使用别名报错如何解决
    这篇“vue3使用别名报错如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3使用别名报错如何解决”文章吧。解决v...
    99+
    2023-07-02
  • Springboot使用put、delete请求报错405怎么解决
    本篇内容介绍了“Springboot使用put、delete请求报错405怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Spring...
    99+
    2023-07-02
  • node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE的解决方法
    发现错误 最近在用Nodejs发送https请求时候,出现”Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE”的错误,错误如下: events.js:72 throw er;...
    99+
    2022-06-04
    报错 解决方法 js
  • Mybatis中Mapper使用package方式配置报错如何解决
    这篇文章主要讲解了“Mybatis中Mapper使用package方式配置报错如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis中Mapper使用package方式配置报错...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作