pytorch CosineEmbeddingLoss使用 与 内存一直增加的问题
CosineEmbeddingLoss使用
必须要三个参数,a,b,y
其中a,b为要计算cosine的向量,y为一个为1或-1的tensor。
a,b维度需为[m,n],y维度为[m]或[1]的向量,例如torch.tensor([1]).to(device)
loss计算结果=torch.cosine_similarity(a,b,dim=1).sum()/m

问题
在训练过程中显存一直增加
问题代码
accu_num += torch.cosine_similarity(torch.flatten(act,start_dim=1),torch.flatten(act_after_opu,start_dim=1),dim=1).sum()
以cosine为loss函数时,用cosine_similarity单独计算了一次cosine。其实不用,看CosineEmbeddingLoss的loss输出就可以。
删掉这行代码就可以。

浙公网安备 33010602011771号