如何在 python 中修改神经网络的代价函数

How to modify the cost function of Neural Network in python

我需要使用包和库为 Python 中的神经网络创建自己的成本函数。例如,我想制作一个成本函数,它是其中一个隐藏层输出的函数。

来自 scikit-learn 的 Keras 和 MLP 不允许这样做。还有更好的套餐吗?

在 Keras 中,当它是预测 y 和实际 y 的函数时,您只能拥有修改后的成本函数。我需要更多的灵活性。

您可以创建辅助输出,例如:

import tensorflow as tf

inp = tf.keras.layers.Input(...)
x1 = tf.keras.layers.Dense(..)(inp)
x2 = tf.keras.layers.Dense(...)(x1)

model = tf.keras.Model(inp, [x1, x2])

model.compile(loss=['loss_for_x1', 'loss_for_x2'], 
              optimizer='rmsprop',
              loss_weights=[1., 1.]) # How many the loss function influences 

您可以将损失视为直接应用于第一层。