Keras 中的贪心初始化
Greedy Initialization in Keras
我目前正在 Tensorflow 中编写一个前馈网络,我想制作一个自定义初始化器,它使用具有最高 MSE 的点的(外部定义的)函数来初始化每一层。
伪代码:
Given any input data being passed to my current layer:
- Identify datapoint *X* with highest MSE from target
- Initialize at *f(X)*
抱歉,如果我没有发布伪代码,但我完全不知道如何在 Keras(Python 不是 R)中实现它。
由于您希望 Weights
相对于 Maximized Loss
而不是 Minimized Loss
进行更新(来自评论),因此可以通过传递 -loss
来实现,如下代码所示:
Tensorflow 版本 2.x:
loss = tf.keras.losses.MSE()
opt = tf.keras.optimizers.Adam(learning_rate=0.01)
model.compile(optimizer=opt, loss = -loss)
Tensorflow 版本 1.x:
loss = tf.reduce_mean(tf.keras.losses.MSE(y_true, y_pred))
trainm = tf.train.GradientDescentOptimizer(0.01).minimize(-loss)
希望对您有所帮助。
我目前正在 Tensorflow 中编写一个前馈网络,我想制作一个自定义初始化器,它使用具有最高 MSE 的点的(外部定义的)函数来初始化每一层。
伪代码:
Given any input data being passed to my current layer:
- Identify datapoint *X* with highest MSE from target
- Initialize at *f(X)*
抱歉,如果我没有发布伪代码,但我完全不知道如何在 Keras(Python 不是 R)中实现它。
由于您希望 Weights
相对于 Maximized Loss
而不是 Minimized Loss
进行更新(来自评论),因此可以通过传递 -loss
来实现,如下代码所示:
Tensorflow 版本 2.x:
loss = tf.keras.losses.MSE()
opt = tf.keras.optimizers.Adam(learning_rate=0.01)
model.compile(optimizer=opt, loss = -loss)
Tensorflow 版本 1.x:
loss = tf.reduce_mean(tf.keras.losses.MSE(y_true, y_pred))
trainm = tf.train.GradientDescentOptimizer(0.01).minimize(-loss)
希望对您有所帮助。