Жадная инициализация в Керасе - PullRequest
2 голосов
/ 02 апреля 2020

В настоящее время я кодирую сеть прямой связи в Tensorflow и хочу создать собственный инициализатор, который инициализирует каждый слой, используя (внешне определенную) функцию точки с самым высоким MSE.

Псевдокод:

 Given any input data being passed to my current layer:

 - Identify datapoint *X* with highest MSE from target
 - Initialize at *f(X)*

Извините, если я не разместил псевдокод, но я абсолютно не знаю как go узнать об этом в Керасе (Python нет R).

1 Ответ

0 голосов
/ 07 мая 2020

Поскольку вы хотите, чтобы ваш 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)

Надеюсь, это поможет.

...