问题一:AttributeError: 'NoneType' object has no attribute 'seek'
仔细检查代码中模型路径,模型名称等正确与否。多数情况下是由于torch.load()时由于路径错误load不到文件。
if model_to_open != "":
saved_state = torch.load(
model_to_open, map_location=lambda storage, loc: storage
)
shared_model.load_state_dict(saved_state['model'])
问题二:TypeError:forward() missing 1 required positional arguement:"a"
检察实例化模型时括号是否多打少打,括号中是否忘记参数args。
问题三:在原始代码中加入一个新模型,可以正常训练但模型无法保存输出。
代码使用多进程训练,多个模型的optimizer要写到一起,用一个优化器优化。
if shared_model is not None:
shared_model.share_memory()
optimizer = optimizer_type(
list(filter(lambda p: p.requires_grad, shared_model.parameters())) +
list(filter(lambda p: p.requires_grad, shared_icm_model.parameters())), args
)
optimizer.share_memory()
问题四:训练时未出现问题,但是测试时报错(如TypeError: argument of type 'NoneType' is not iterable等)。
导航任务中,训练和测试的episode不是一个文件,注意统一修改,看是不是val_tese_episode.py文件中有参数未传。