【问题标题】:How to get the weights of layer in a keras model for each input如何为每个输入获取keras模型中层的权重
【发布时间】:2020-08-09 10:31:32
【问题描述】:

我知道您可以通过 Model.layer[layer_number].getWeights() 在某个点从 keras 模型中获取层的权重。我只是在训练期间使用回调来获得一个时期或一批的权重。

但我想获得训练部分中每个输入的层权重。或者如果可能的话,为每个输入激活一个层而不是一个纪元。

有没有办法做到这一点?

【问题讨论】:

    标签: python keras tensorflow2.0 keras-layer


    【解决方案1】:

    这是一个小例子。您可以使用custom callbacks,在其中您可以按层访问模型的权重(包括激活(layers.Activation))。只需根据您的需要进行更改即可。

    这将在每个 epoch 之后打印权重,您可以绘制/保存它们,或者根据需要对它们运行任何操作。

    from tensorflow.keras.layers import *
    from tensorflow.keras.models import Model, Sequential
    from tensorflow.keras.optimizers import Adam
    import tensorflow as tf
    import numpy as np
    from keras.callbacks import LambdaCallback
    
    model=Sequential()
    model.add(Dense(32,activation='linear',input_shape=(37,10)))
    model.add(Dense(32,activation='linear'))
    model.add(Dense(10,activation='linear'))
    model.compile(loss='mse',optimizer=Adam(lr=.001),metrics=['accuracy'])
    model.summary()
    
    class MyCustomCallback(tf.keras.callbacks.Callback):
    
      def on_train_batch_begin(self, batch, logs=None):
        print(model.layers[0].get_weights())
    
      def on_train_batch_end(self, batch, logs=None):
        print(model.layers[0].get_weights())
    
      def on_test_batch_begin(self, batch, logs=None):
        pass
    
      def on_test_batch_end(self, batch, logs=None):
        pass
    
    
    X_train = np.zeros((10,37,10))
    y_train = np.zeros((10,37,10))
    
    weight_print = MyCustomCallback()
    model.fit(X_train, 
              y_train, 
              batch_size=32, 
              epochs=5, 
              callbacks = [weight_print])
    

    【讨论】:

    • 如前所述,我已经在你提到的每个 epoch 之后实现了 getWeights。但我想要的是训练每个输入后的权重!
    • 1.您可以使用batch_size = 1 进行训练并实现on_train_batch_end 或2。不要使用fit,使用train_on_batch 和自定义fit 函数。
    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 2019-03-03
    • 2021-06-18
    • 1970-01-01
    相关资源
    最近更新 更多