pytorch1.3.1:
def compactness_loss(output):
# dim: (batch, vector)
_, n = output.size()
avg = torch.mean(output, axis=1)
std = torch.std(output, axis=1)
zt = output.T - avg
zt /= std
corr = torch.matmul(zt.T, zt) / (n - 1)
loss = torch.sum(torch.triu(corr, diagonal=1)**2)
return loss
但是pytorch1.1.0如果想使用上述代码只能改成:
def compactness_loss(output):
# dim: (batch, vector)
_, n = output.size()
avg = torch.mean(output, dim=1)
std = torch.std(output, dim=1)
#zt = output.T - avg
zt = output.t() - avg
zt /= std
#corr = torch.matmul(zt.T, zt) / (n - 1)
corr = torch.matmul(zt.t(), zt) / (n - 1)
loss = torch.sum(torch.triu(corr, diagonal=1)**2)
return loss
博客提及了PyTorch 1.3.1,还指出PyTorch 1.1.0若使用相关代码需进行修改,体现了不同版本PyTorch在代码使用上存在差异。

3553

被折叠的 条评论
为什么被折叠?



