我想使用 Caffe 框架实现论文“Generalizing to unseen domains via adversarial data augmentation”提出的算法。程序如下。在 PyTorch 中,它可以实现为
grad = torch.autograd.grad(loss, data)[0]
。但是在 Caffe 中,据我所知,没有执行此操作的功能。那么如何计算 Caffe 中“输入”层的梯度。 “输入”层表示语义分割中的输入图像。
我试过在反向传播后调用
net->input_blobs()[0]->cpu_diff()
,但是cpu_diff
中的值都是0。显然,Caffe默认不计算输入层的梯度。