过去的事情先不说了,就说今天的
气的我想骂人,TMD
f之前有个bug,就是没跑3个epoch,就直接dataloader killed,我查了好久,对比代码什么的,怀疑是因为我自己写的loss,莫名其妙有些bug(在我实验室跑起来,可半点bug没有),反正就是涉及数据保存的事情,然后现在我重新用torch自带的loss,什么都没保存,讲道理这样应该可以了,结果现在跑了18个小时,却一个epoch都没跑完,我现在又怀疑是不是数据没读取进去?但是这不可能啊,我又没改数据读取的事情。TNND,我现在只能print一下训练过程,估计是print不出来的,所以等于我还是没找出bug在哪。
————————————————————————————————
重新看了一下,发现其实是跑起来了的,但是跑的速度大概只有原来的1/6?明明我已经用了多线程读取数据了!我增加了线程数量,不知道现在会怎么样,好烦,又要等。
—————————————————————————————————
现在发现似乎平台分配的GPU id是不稳定的,所以如果我指定的不太对,就会有问题?
—————————————————————————————————
发现GPU id是没影响的,是他们平台的文件系统不稳定!!!真是CTM了,这速度慢了10倍,我根本没办法调代码了。
——————————————————————————————————
t之前有个bug,就是平台上使用多卡在loss里面return东西的时候,是多张卡return的叠加,这本来不是bug,但是如果你返回的东西并不需要多卡计算,那么问题就出来了,他会被叠加N次,bug就出现了。然后我取消了这个return,改为自己直接从对象中取出来,然后跑了2天,现在又发现,它不学了!loss一直非常小,acc也非常小。我TMD怎么就这么难呢?