UIU-Net- RuntimeError: torch.cat(): input types can‘t be cast to the desired output type Byte

折腾了一天的UIU-Net代码,运行train.py始终在不同批次报如下错误:

[epoch: 1/500, batch: 45/ 213, ite: 15] train loss: 0.884871, tar: 0.183994
Traceback (most recent call last):
File "D:\contrast-methods\IEEE_TIP_UIU-Net-main\train.py", line 139, in
for i, data in enumerate(salobj_dataloader):
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data\dataloader.py", line 630, in next
data = self._next_data()
^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data\dataloader.py", line 1345, in _next_data
return self._process_data(data)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data\dataloader.py", line 1371, in _process_data
data.reraise()
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch_utils.py", line 694, in reraise
raise exception
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data_utils\worker.py", line 308, in _worker_loop
data = fetcher.fetch(index)
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data_utils\fetch.py", line 54, in fetch
return self.collate_fn(data)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data_utils\collate.py", line 265, in default_collate
return collate(batch, collate_fn_map=default_collate_fn_map)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data_utils\collate.py", line 127, in collate
return elem_type({key: collate([d[key] for d in batch], collate_fn_map=collate_fn_map) for key in elem})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data_utils\collate.py", line 127, in
return elem_type({key: collate([d[key] for d in batch], collate_fn_map=collate_fn_map) for key in elem})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data_utils\collate.py", line 119, in collate
return collate_fn_map[elem_type](batch, collate_fn_map=collate_fn_map)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\hp-\AppData\Roaming\Python\Python311\site-packages\torch\utils\data_utils\collate.py", line 162, in collate_tensor_fn
return torch.stack(batch, 0, out=out)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: torch.cat(): input types can't be cast to the desired output type Byte。

解决的方式:打印信息调试;强制转换数据类型等发现都是无用功。

第二天起来,把多进程num_workers改为了单进程发现它站起来了!如下:

DataLoader(salobj_dataset, batch_size=batch_size_train, shuffle=False, num_workers=0, drop_last=True)

人生何处不是惊喜。

待解决下一个问题,如何将Linux系统的指令运行方式用在Windows上。

比如指令 python train.py  config/path/to/file。如何在Windows上实现,希望能解决它!

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值