在ecery-batch-keras中获取训练数据

在ecery-batch-keras中获取训练数据,keras,deep-learning,loss-function,Keras,Deep Learning,Loss Function,我想知道是否有可能获得每批KERA中使用的培训数据集 很容易得到y_true和y_pred,但我想知道在该批次中用于预测的训练数据集 def my_loss(y_true, y_pred): loss=K.mean(K.abs(y_true-y_pred)) return loss model.compile(loss=my_loss, optimizer='rmsprop', metrics=['mae']) 这是OK 但我想要这样的东西: def my_loss(y_tr

我想知道是否有可能获得每批KERA中使用的培训数据集

很容易得到y_true和y_pred,但我想知道在该批次中用于预测的训练数据集

def my_loss(y_true, y_pred):
    loss=K.mean(K.abs(y_true-y_pred))
    return loss

model.compile(loss=my_loss, optimizer='rmsprop', metrics=['mae'])
这是OK

但我想要这样的东西:

def my_loss(y_true, y_pred, x_train):

my_loss() missing 1 required positional argument: 'x_train'
def custom_loss(x_train):

    def my_loss(y_true, y_pred):
        loss=K.mean(K.abs(y_true-y_pred))
        # do something with x_train
        return loss

    return my_loss

感谢您的帮助

如果您希望传递除
y\u true
y\u pred
之外的参数,您可以这样定义自定义损失:

def my_loss(y_true, y_pred, x_train):

my_loss() missing 1 required positional argument: 'x_train'
def custom_loss(x_train):

    def my_loss(y_true, y_pred):
        loss=K.mean(K.abs(y_true-y_pred))
        # do something with x_train
        return loss

    return my_loss
编译时,可以传递与
x\u序列相同形状的张量

input_tensor = Input(shape=input_shape) #specify your input shape, same as x_train.
model.compile(loss=custom_loss(input_tensor), optimizer='rmsprop', metrics=['mae'])
这是定义自定义损失的方式。此外,您还需要获得当前批次的
x_train
,现在批处理是您必须自己处理的事情。

最后,在培训期间您可以使用。

谢谢,现在我有一些新信息要继续