如何在 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
您可以将损失视为直接应用于第一层。
我需要使用包和库为 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
您可以将损失视为直接应用于第一层。