RCAN学习——多帧超分辨率

超分辨率模型RCAN官方代码(pytorch)是参考EDSR代码进行编写,直接运行存在版本问题,目前暂时不支持pytorch1.0及以上,部分代码需要进行修改,本文尽可能比较细的将需要修改的地方进行阐述,并提供一个基于RCAN模型的多帧超分辨率版本的github链接。

RCAN版本更新

直接运行RCAN代码时,报错:

ImportError: cannot import name ‘_worker_manager_loop’

ImportError: cannot import name ‘_update_worker_pids’

原因:Pytorch升级到1.0后,dataloder模块中的_worker_manager_loop函数已被移除并由_pin_memory_loop替代。因此需要将dataloader.py中的_worker_manager_* 修改为_pin_memory_* ,具体修改如下:

1、dataloader.py第10行

from torch._C import _set_worker_signal_handlers, _update_worker_pids, \
_remove_worker_pids, _error_if_any_worker_fails

修改为:

from torch._C import _set_worker_signal_handlers
from torch.utils.data import _utils

2、dataloader.py第15行到第22行

from torch.utils.data.dataloader import ExceptionWrapper
from torch.utils.data.dataloader import _use_shared_memory
from torch.utils.data.dataloader import _worker_manager_loop
from torch.utils.data.dataloader import numpy_type_map
from torch.utils.data.dataloader import default_collate
from torch.utils.data.dataloader import pin_memory_batch
from torch.utils.data.dataloader import _SIGCHLD_handler_set
from torch.utils.data.dataloader import _set_SIGCHLD_handler

修改为:

_use_shared_memory = False

3、dataloader.py第51行

data_queue.put((idx, ExceptionWrapper(sys.exc_info())))

修改为:

data_queue.put((idx, _utils.ExceptionWrapper(sys.exc_info())))

4、dataloader.py第74行

_result_queue = multiprocessing.SimpleQueue()

修改为:

self.worker_result_queue = multiprocessing.Queue()

5、dataloader.py第105到第111行

self.worker_manager_thread = threading.Thread(
                target=_worker_manager_loop,
                args=(self.worker_result_queue, self.data_queue, self.done_event, self.pin_memory,
                      maybe_device_id))
self.worker_manager_thread.daemon = True
self.worker_manager_thread.start()

修改为:

self.pin_mem
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值