在训练期间更改Keras正则化器的超参数模型

时间:2019-07-13 05:31:59

标签: python tensorflow keras

关于Keras中的可训练参数,我有两个问题:

  1. 我正在为Keras模型myReg设计自己的正则化器Model_1,其中正则化器R具有一个超级参数,它是另一个Keras模型Model_2
class myReg(Regularizer):
    def __init__(self, Model_2):
        self.model = Model_2

但是由于Model_1Model_2是交替训练的,因此Model_2将得到更新。 myReg也会在Model_1的培训期间得到更新吗?我做了一些实验,但是我仍然不确定是否会起作用。我在训练期间阅读了许多有关正则化器的更改超参数的问题,https://github.com/keras-team/keras/issues/4813这个问题的人使用K.set_value

有人知道Model_2是否会真正更新吗?如果没有,是否有办法对其进行更新?

  1. 当我有一些可训练的参数时,说layer.trainable_weights,但是我想在进行其他操作之前对权重进行排序,我该怎么做?我可以使用
  2. 之类的东西吗
import tensorflow as tf
p = layer.trainable_weights
p = tf.sort(p)

或者Keras中有什么特别的方法吗?

非常感谢有人可以回答我的问题,谢谢!

0 个答案:

没有答案