繁体   English   中英

如何在训练过程中处理 numpy arrays function

[英]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 库作为具有梯度的张量的整个想法。 所以你的选择是:

  1. 对自定义损失 function 使用纯 TF。

  2. 如果 y_true 最初位于 numpy - 在运行 model 之前将 y_true 转换为 TF。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM