[英]how to work on numpy arrays during training for custom loss function
我目前正在使用 tensorflow 和 keras 实现 neural.network,我需要做的是调用 function,我无法重新实现,它适用于 numpy arrays 而不是 Tensors,我的第一个想法是调用 194698594像这样
def loss_gi(y_true, y_pred): # <class 'tensorflow.python.framework.ops.Tensor'>
x = gamma(np.squeeze(y_true.numpy() , axis=0), np.squeeze(y_pred.numpy() , axis=0))
return np.nansum(x)
with strategy.scope():
model = hd_unet_model(INPUT_SIZE)
model.compile(optimizer=Adam(lr=0.001),
loss=loss_gi)
伽玛返回体积的地方。
但是在Model.fit
期间,如果您尝试在 Tensor 上调用y.numpy
,您会收到错误Tensor has no attribute numpy
,这是因为.numpy
仅适用于急切执行而不适用于图形执行(至少这是我的理解) .
有谁知道创建自定义损失 function 的方法,该损失适用于 numpy arrays?
损失 function 必须在 TF 中,以便它产生梯度。 使用 Numpy 损失 function 扼杀了 TF 库作为具有梯度的张量的整个想法。 所以你的选择是:
对自定义损失 function 使用纯 TF。
如果 y_true 最初位于 numpy - 在运行 model 之前将 y_true 转换为 TF。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.