我正在处理一个回归问题,以重构信息来减轻邻居传感器的串扰效应,我想更改损耗函数,以便在自定义损耗函数的中间步骤中评估标准差。
下面是我想要实现的代码:
我的y_pred
作为形状(nEvents, 100)
我发现了许多例子来创建我的损失函数如下:
import backend as K
def my_loss_func1(y_true, y_pred):
return K.mean(K.square(y_pred - y_actual) + K.square(layer), axis=-1)
但在这些示例中,我没有找到如何访问y_pred
(TensorFlow变量)内部的数据。在所有示例中,它只是使用后端的一个函数来计算损耗,并将y_pred
、y_true
作为参数传递。
我需要做的是:
def my_loss_func2(y_true, y_pred):
samples = y_pred( <HOW DO TO GET THE VALUES?> )
cells = int(samples.shape[1]/4)
AmpRec = np.tensordot(samples.reshape(samples.shape[0], signals, nSamp),ai, axes=(2,0))
TimeRec = np.tensordot(samples.reshape(samples.shape[0], signals, nSamp),ai, axes=(2,0))/AmpRec
return K.std(TimeRec)
我想改进和更新我的模型以调整权重,同时考虑与timeRec
排列(std)有关的optimal_filter输出。
有人评估过像我想做的那样访问y_pred
的损失函数吗?
1条答案
按热度按时间o3imoua41#
今天,几天后...
我找到了一个解决方案,阅读后how to print Keras tensors .
存在一些操纵Tensor的方法,例如:
但要启用这些功能,必须在模型编译方法上添加 *run_eregly *:
在这一步之后,您可以访问Tensor信息以根据需要进行操作。