【发布时间】:2020-09-21 16:05:06
【问题描述】:
我正在考虑使用类似感知器的神经网络来解决我的问题。为了简单起见,我有一个数据集,如下所示:
id entryWoodLength entryWoodThickness cuttingToolPos1 cuttingToolPos2 exitWoodLength exitWoodThickness
1 5.5 1.6 2.1 2.2 4.2 1.6
2 5.7 1.5 2.2 2.6 4.2 1.5
3 6.5 1.8 2.6 2.7 4.3 1.6
4 5.9 1.7 2.4 2.9 4.2 1.5
5 5.8 1.5 2.2 2.6 4.1 1.5
我曾想过尝试一个前馈神经网络,其中输入是木材尺寸(entryWoodLenth 和 entryWoodThickness),输出是切割工具的位置(cuttingToolPos1 和 cuttingToolPos2)。我们已经知道出口木材的理想尺寸应该是多少(例如,长度为 4.2,厚度为 1.5)。因此,从技术上讲,我们希望我们的网络能够根据木材的实际值(exitWoodLength 和 exitWoodThickness)进行自我优化。这意味着将 exitWoodLength 和 exitWoodThickness 的 MSE 与 4.2 和 1.5 的参考值一起使用,如下所示:
mean_squared_error(exitWoodLength, 4.2) + mean_squared_error(exitWoodThickness, 1.5)
然而,Keras 只允许使用y_pred 和y_true 参数的自定义损失函数,在我们的例子中是cuttingToolPos1 和cuttingToolPos2,而不是我们想要的损失函数的值。我正在考虑使用闭包函数,而只是忽略 y_pred 和 y_true 参数,在某种意义上:
def custom_loss(exitWoodLength, exitWoodThickness):
def loss(y_pred, y_true):
mean_squared_error(exitWoodLength, 4.2) + mean_squared_error(exitWoodThickness, 1.5)
return loss
但我担心索引是否可行。
有没有人经历过类似的事情?我在使用神经网络的道路上是正确的还是完全错误的?
【问题讨论】:
标签: python tensorflow keras loss-function