【发布时间】:2021-06-04 02:49:50
【问题描述】:
我有一个 GAN,它返回预测的 torch.tensor。为了指导这个网络,我有一个损失函数,它是二元交叉熵损失 (BCELoss) 和 Wasserstein 距离的总和。但是,为了计算 Wasserstein 距离,我使用了 scipy.stats.wasserstein_distance 库中的 scipy.stats.wasserstein_distance 函数。您可能知道,此函数需要两个 NumPy 数组作为输入。所以,为了使用这个函数,我将我的预测张量和真实张量转换为NumPy 数组,如下所示
pred_np = pred_tensor.detach().cpu().clone().numpy().ravel()
target_np = target_tensor.detach().cpu().clone().numpy().ravel()
W_loss = wasserstein_distance(pred_np, target_np)
然后,通过将W_loss 与BCELoss 相加得到总损失。我现在展示这部分是因为它有点不必要并且与我的问题无关。
我担心的是我正在分离梯度,所以我想在优化和更新模型参数时它不会考虑W_loss。我是一个新手,所以我希望我的问题很清楚,并感谢您提前回答。
【问题讨论】:
标签: scipy pytorch generative-adversarial-network