从DataLoader获取批时model参数清零
Opened this issue · 0 comments
DgtlCdy commented
首先感谢Rechorus项目对推荐的标准化工作贡献!
使用时发现,运行此处代码
for batch in tqdm(dl, leave=False, desc='Epoch {:<3}'.format(epoch), ncols=100, mininterval=1):
时,model的参数全部清空为0.,导致训练时不能求梯度。经查发现model的引用被传到Dataset内,可能在输出batch时对model做了未定义的修改。
本机pytorch2.3.0必现此问题,尚不清楚其它版本。考虑到model的运行与dataset并无关系,这样的架构设计是否可以优化?
尝试把model引用放在Runner内,定制的Dataset仅在初始化时传入来自model的一些超参数,即可规避此问题。望作为参考。