Tensorflow 在Keras中的神经网络部分实现随机正向传递?

Tensorflow 在Keras中的神经网络部分实现随机正向传递?,tensorflow,keras,deep-learning,Tensorflow,Keras,Deep Learning,我的问题如下: 我正在处理一个对象检测问题,希望使用。对象由一个训练模型和一个围绕训练模型的预测模型组成。我想使用训练模型执行几次随机向前传递,并将其结合起来,例如,通过平均预测包装中的预测值。有没有一种方法可以在keras模型中实现这一点,而不需要使用numpy进行中间处理? 请注意,这个问题不是关于 def预测_包装器(型号): #示例代码。 #论据 #模式:培训模式 回归=模型。输出[0] 分类=模型输出[1] 预测=#待办事项:在此处执行几次随机向前传球(在训练和测试期间中途退出) av

我的问题如下:

我正在处理一个对象检测问题,希望使用。对象由一个训练模型和一个围绕训练模型的预测模型组成。我想使用训练模型执行几次随机向前传递,并将其结合起来,例如,通过平均预测包装中的预测值。有没有一种方法可以在keras模型中实现这一点,而不需要使用numpy进行中间处理? 请注意,这个问题不是关于

def预测_包装器(型号):
#示例代码。
#论据
#模式:培训模式
回归=模型。输出[0]
分类=模型输出[1]
预测=#待办事项:在此处执行几次随机向前传球(在训练和测试期间中途退出)
avg#U预测=#TODO:在此处组合预测,例如通过计算平均值
输出=#TODO:对平均预测值进行一些处理
返回keras.models.Model(输入=Model.inputs,输出=outputs,name=name)
我使用带有tensorflow后端的keras。
谢谢你的帮助

据我所知,您试图在启用退出时平均单个样本的权重更新。由于辍学是随机的,所以对于同一个样本,您将获得不同的权重更新

如果这种理解是正确的,那么您可以通过复制相同的样本来创建一个批。在这里,我假设每批样品的辍学率是不同的。由于反向传播会平均权重更新,因此您将获得所需的行为


如果这不起作用,那么您可以编写一个定制的批处理大小为1的训练。您可以更新自定义损耗函数中的全局计数器,并仅在按您希望的方式对其进行平均后返回非零损耗。我不知道这是否行得通,这只是一个想法。

这个想法是在训练期间使用标准辍学率,因此不需要平均体重更新。然后,在测试时,仍然使用辍学,我执行了几次前向传递,以获得不同输出的样本(其中随机性是由不同的辍学掩码引起的)。复制输入的想法可能会奏效,我们将对此进行研究。谢谢你的回复。