最近在使用u版yolov3训练数据集时,使用多GPU训练时总是报错:
TypeError: Caught TypeError in replica 1 on device 1.
TypeError: forward() missing 1 required positional argument: 'x'
百度了一下发现是因为我使用了多个显卡,导致在inference阶段,模型和数据不在同一个显卡上,所以后面同时报了:
TypeError: forward() missing 1 required positional argument: 'x'
没有数据的错误。
详情参考这篇文章:https://www.cnblogs.com/YouXiangLiThon/p/13361448.html
但百度上面没有查询到解决办法,于是去github上试试有没有相同的问题。结果发现真的有人出现了同样问题,大佬的回答是因为自己的数据集数量不是 batch-size 的整数倍,因此会报错。参考https://github.com/ultralytics/yolov3/issues/1355
于是查看自己的数据集,真的是这个问题,问题解决!
pytorch 使用多GPU训练模型测试出现:TypeError: forward() missing 1 required positional argument: ‘x‘可能解决方法
最近在使用u版yolov3训练数据集时,使用多GPU训练时总是报错: TypeError: Caught TypeError in replica 1 on device 1. TypeError: forward() missing 1 required positional argument: 'x'百度了一下发现是因为我使用了多个显卡,导致在inference阶段,模型和数据不在同一个显卡上,所以后面同时报了:TypeError: forward() missing 1 re...
device = torch.device(cuda:0 if torch.cuda.is_available() else cpu)#第一行代码
model.to(device)#第二行代码
首先是上面两行代码放在读取数据之前。
mytensor = my_tensor.to(device)#第三行代码
然后是第三行代码。这句代码的意思是将所有最开始读取数据时的tersor变量copy一份到device所指定的
GPU
上去,之后的运算都在
GPU
上进行。需要注意的是这句话并不像前面的两行代码一样只需要写一遍,第三行代码需要写的次数就等于需要保存到
GPU
上的tensor变量
个人环境为VS2015+opencv4.0,目标为
使用
Net.
forward
()实现Mask R-CNN目标检测的前向推断。
出现
的问题为,有些图片能正常检测,有些图片却
出现
CV:Exception(ucrtbase.dll)异常。
随
使用
try catch查找错误:
net.
forward
(outs, outNames);
catch (cv::Ex...
File ".\seg_v2\framework.py", line 13, in __init__
self.net = net().cuda()
File "C:\Users\Administrator\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 722, in _c
al
l_impl
result = self.
forward
(*input, **kwargs)
TypeError
:
forward
()
做三位人体重建的时候,运行时代码报错
TypeError
: Caught
TypeError
in replica 1 on device 1.
这个错误的意思是在程序中分配了一个
gpu
, 但运行时给程序两个
gpu
,但是其实我只是在配置文件中规定
使用
gpu
:0
因为我的服务器有两张卡,空闲了一张显卡,代码自动调用了它们,然后找了半天错误,最后在代码中将
gpu
设置成一张就行了。
解决
方法
在代码中加入下面两行代码,强制
使用
一块卡即可
import os
os.environ['CUDA_VISIBLE_
目录1、数据并行1.1、单
GPU
或者无
GPU
训练的代码如下:1.2、数据并行的多
GPU
训练2、设备并行
本文讲简单的探讨Keras中
使用
多
GPU
训练的
方法
以及需要注意的地方。有两种
方法
可在多个
GPU
上运行单个模型:数据并行和设备并行(Keras官方建议
使用
TensorFlow 后端)。第一部分讲如何
使用
数据并行的方式
使用
多
GPU
加速;第二部分给出一个设备并行的例子。
1、数据并行
1.1、...
我在
训练模型
的时候
使用
了nn.DataPar
al
lel,并在在服务器
gpu
测试
也同时将训练好的模型并行载入,这样没有问题,但是我将训练好的模型在本地cpu运行的时候
出错
。这里记录
出错
的地方,并记录大致流程。
1. CPU读取模型:
RuntimeError: Attempting to deseri
al
ize object on a CUDA device but torch.cuda.is_av...
这个错误提示是在
使用
PyTorch
的神经网络模型时
出现
的。它说明在调用
forward
() 函数时,缺少了一个必需的位置参数 "x"。
forward
() 函数是用来定义神经网络的前向传递过程的,它需要至少一个输入数据张量,也就是参数 "x"。如果调用
forward
() 函数时没有提供参数 "x",就会
出现
这个错误。
解决
方法
是在调用
forward
() 函数时,为参数 "x" 传入正确的输入数据张量,确保它与神经网络的输入层匹配。
北风之神c:
SIFT特征点提取
不爱吃鱼的酸菜:
HALCON初步:算子参数部分三个冒号的意义
MessiGodLike:
二值图距离变换
MTlove404:
SIFT特征点提取
weixin_44543051: