Not implemented (Exception from HRESULT: 0x80004001 (E_NOTIMPL))

今天在调试之前的代码:chart.ChartArea.Copy();时出现了这个问题,翻译过来就是chart的ChartArea.Copy()方法没有实现。当时觉得很奇怪,因为这段代码时一个成熟产品里面的,很多的现场都在使用,怎么可能出现问题。后面分析原因应该是改方法在Microsoft.Office.Interop.Excel 14.0中才支持,由于我本机安装了WPS,它修改了Com组件的注册信息,使其指向了在Microsoft.Office.Interop.Excel 12.0。解决方案参照上一篇文章 《对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。》中的第一条评论。。。
### 回答1: 这个错误是由于在使用 PyTorch 的 CUDA 加速时,尝试对 'long' 类型的张量执行 'addmm' 操作,但是该操作并没有被实现。建议将张量类型转换为 'float' 或 'double' 类型,或者使用 CPU 进行计算。 ### 回答2: 这个错误是指在PyTorch的代码中,使用了“addmm_cuda”函数,但是这个函数没有针对‘long’数据类型进行实现,导致出现了“not implemented”错误。addmm_cuda函数是PyTorch中的一个矩阵操作函数,用于将两个矩阵相乘并加上一个偏置矩阵得到一个新的输出矩阵。 如果在代码中使用long类型,这个函数就会报错,因为long类型是在CPU上实现的,而addmm_cuda是PyTorch中的一个GPU函数,专门针对GPU上的float和double数据类型进行优化的。因此,如果想要使用这个函数,应该使用float或double类型的数据。 要解决这个错误,一种方法是在代码中使用float或double数据类型,尤其是当使用GPU计算时,需要确保数据类型的正确性。另外一种方法是通过更改代码来实现针对long数据类型的addmm_cuda函数,不过这需要相当高的技术水平和精确度,建议不要尝试。 总之,在进行PyTorch代码开发时,需要注意数据类型的选择和正确性,避免出现类似的错误。 ### 回答3: 该错误通常是由于使用PyTorch的GPU版本时,尝试在数据类型为long的张量上执行addmm操作而导致的。 PyTorch是一个用于深度学习的Python库,可以使用GPU进行高效计算。CUDNN(NVIDIA用于深度神经网络的最新库)可以加速多个操作,例如矩阵乘法,但是CUDNN仅用于float和double类型的张量。因此,如果在数据类型为long的张量上执行addmm操作,将无法使用CUDNN进行加速,这就是出现“addmm_cuda not implemented for 'long'”错误的原因。 解决此错误的方法是将数据类型从long更改为float或double。可以使用张量的type方法轻松更改数据类型。例如,x = x.type(torch.FloatTensor)将张量x的类型从long更改为float。 此外,还可以使用数据类型适当的初始化方法来避免此错误。例如,torch.zeros和torch.ones的默认类型为float,而torch.zeros(n,dtype = torch.long)和torch.ones(n,dtype = torch.long)的类型为long。 总之,务必注意数据类型的选择,并确保在执行操作之前,了解所用数据类型是否有GPU加速器的支持。使用type方法可以轻松地更改数据类型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值