我目前正在尝试为Keras模型创建自定义损失函数。
考虑到训练时正在处理的当前图像,我希望损失函数为其创建一个对抗示例。对于对抗性示例创建,我想使用傻瓜框。
我尝试的是以下
def custom_loss(y_true, y_pred):
# create adversarial with foolbox
x_adv = attack(model.input, np.argmax(y_true))
# calc robust loss
loss_n = categorical_crossentropy(y_pred, y_true)
loss_robust = kldiv(np.log(softmax(model(x_adv))),softmax(y_pred))
loss = loss_n + loss_robust
return loss
但是当我尝试以这种损失编译模型时,我得到了:
AttributeError:“ Tensor”对象没有属性“ min”
有什么方法可以获取当前图像,并将其输入到CNN的训练过程中?由于model.input显然只返回我不知道/不知道如何使用的输入张量。