微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在使用 pytorch 转换时得到这个 --->TypeError: integer argument expected, got float

如何解决在使用 pytorch 转换时得到这个 --->TypeError: integer argument expected, got float

我克隆了 transfer-learning-library 存储库并致力于最大分类器差异。我正在尝试更改增强但收到以下错误

Traceback (most recent call last):
  File "mcd.py",line 378,in <module>
    main(args)
  File "mcd.py",line 145,in main
    results = validate(val_loader,G,F1,F2,args)
  File "mcd.py",line 290,in validate
    for i,(images,target) in enumerate(val_loader):
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/DataLoader.py",line 521,in __next__
    data = self._next_data()
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/DataLoader.py",line 1203,in _next_data
    return self._process_data(data)
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/DataLoader.py",line 1229,in _process_data
    data.reraise()
  File "/usr/local/lib/python3.7/dist-packages/torch/_utils.py",line 425,in reraise
    raise self.exc_type(msg)
TypeError: Caught TypeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/worker.py",line 287,in _worker_loop
    data = fetcher.fetch(index)
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py",line 44,in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py",in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "../../../common/vision/datasets/imagelist.py",line 48,in __getitem__
    img = self.transform(img)
  File "/usr/local/lib/python3.7/dist-packages/torchvision/transforms/transforms.py",line 60,in __call__
    img = t(img)
  File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py",line 1051,in _call_impl
    return forward_call(*input,**kwargs)
  File "/usr/local/lib/python3.7/dist-packages/torchvision/transforms/transforms.py",line 750,in forward
    return F.perspective(img,startpoints,endpoints,self.interpolation,fill)
  File "/usr/local/lib/python3.7/dist-packages/torchvision/transforms/functional.py",line 647,in perspective
    return F_pil.perspective(img,coeffs,interpolation=pil_interpolation,fill=fill)
  File "/usr/local/lib/python3.7/dist-packages/torchvision/transforms/functional_pil.py",line 289,in perspective
    return img.transform(img.size,Image.PERSPECTIVE,perspective_coeffs,interpolation,**opts)
  File "/usr/local/lib/python3.7/dist-packages/PIL/Image.py",line 2371,in transform
    im = new(self.mode,size,fillcolor)
  File "/usr/local/lib/python3.7/dist-packages/PIL/Image.py",line 2578,in new
    return im._new(core.fill(mode,color))
TypeError: integer argument expected,got float

之前的代码

 # Data loading code
    normalize = T.normalize(mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225])
    if args.center_crop:
        train_transform = T.Compose([
            ResizeImage(256),T.CenterCrop(224),T.RandomHorizontalFlip(),T.ToTensor(),normalize
        ])
    else:
        train_transform = T.Compose([
            ResizeImage(256),T.RandomresizedCrop(224),normalize
        ])
    val_transform = T.Compose([
        ResizeImage(256),normalize
    ])

我刚刚为 val_transform 添加 T.RandomPerspective(distortion_scale = 0.8,p=0.5,fill=0.6)。 在此之前,我还为 train_transform 添加了一些其他转换,但仍然出现相同的错误。 可能是什么问题?

解决方法

fill 参数必须是整数。

此转换不支持 fill 类型的 Tensor 参数;因此,如果您希望使用 fill 参数,则必须在 ToTensor 转换之前使用此转换。此时,数据是完整的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?