image-processing - TypeError: __call__() 接受 2 个位置参数,但给出了 3 个。通过迁移学习使用 FastRCNN 训练 Raccoon 预测模型
问题描述
from torchvision.models.detection.faster_rcnn import FastRCNNPredictor
from engine import train_one_epoch, evaluate
import utils
import torchvision.transforms as T
num_epochs = 10
for epoch in range(num_epochs):
train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=10)
lr_scheduler.step()
evaluate(model, data_loader_test, device=device)
我使用的代码与此链接Building Raccoon Model中提供的代码相同,但我的代码不起作用。
这是我在 () 中收到 TypeError Traceback (most recent call last) 的错误消息
2 for epoch in range(num_epochs):
3 # train for one epoch, printing every 10 iterations
4 ----> train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=10)
5 # update the learning rate
6 lr_scheduler.step()
7 帧
在getitem (self, idx)
29 target["iscrowd"] = iscrowd
30 if self.transforms is not None:
31 ---> img, target = self.transforms(img, target)
32 return img, target
33
TypeError: call () 接受 2 个位置参数,但给出了 3 个
解决方案
上面的答案是不正确的,我在注意到之前不小心投了赞成票。您使用了错误的 Compose,请注意它说
https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html#putting-everything-together
“在references/detection/中,我们有许多帮助函数来简化训练和评估检测模型。在这里,我们将使用references/detection/engine.py、references/detection/utils.py和references/detection/transforms.py . 只需将它们复制到您的文件夹并在此处使用它们。”
有帮助脚本。他们继承了 compose 和 flip 方法
在注意到这一点之前,我做了同样的事情。不要使用 torchvision.transforms 中的 compose 方法,否则会出现上述错误。下载他们的模块并加载它。
推荐阅读
- javascript - 使用 Webpack 编译 SASS 文件
- sapui5 - VizFrame 错误消息:50014 - Feed Failed Tests 无法接受更多数据容器
- sql - 不识别 WHERE 子句中的别名
- python - 在装饰器中实现的 Python 静态变量不会重置
- mysql - 如何获得历史记录中的最后一行
- javascript - 同源策略不允许读取远程资源
- regex - sed:在 ^*= 的替换和正则表达式中苦苦挣扎
- javascript - CSV 导出始终只导出一行
- java - interupt() 方法如何在 java 线程中工作?
- css - 如何对齐标题中的 2 个不同元素?