Весовая матрица для функциональных API керас / тензор потока - PullRequest
0 голосов
/ 15 апреля 2020

Я создал полупараметрическую c регрессионную модель с функциональным API, я хотел бы получить весовые параметры из одного из слоев, но я не уверен, должен ли я сначала назвать слой, а затем использовать get_weights () или сделать что-нибудь еще.

Вот код для моей модели. Я пытаюсь получить веса из последнего слоя линейной активации.

    nputs1 = tf.keras.layers.Input(shape=[len(ztrain.keys())])
bn1 = tf.keras.layers.BatchNormalization()(inputs1)
hidden1 = tf.keras.layers.Dense(16, activation='relu', kernel_initializer=tf.keras.initializers.Zeros(),
                                kernel_regularizer=tf.keras.regularizers.l1(0.001))(bn1)
bn2 = tf.keras.layers.BatchNormalization()(hidden1)
hidden2 = tf.keras.layers.Dense(8, activation='relu', kernel_initializer=tf.keras.initializers.Zeros(),
                                kernel_regularizer=tf.keras.regularizers.l1(0.001))(hidden1)
bn3 = tf.keras.layers.BatchNormalization()(hidden2)
hidden3 = tf.keras.layers.Dense(4, activation='relu', kernel_initializer=tf.keras.initializers.Zeros(),
                                kernel_regularizer=tf.keras.regularizers.l1(0.001))(bn3)
output1 = tf.keras.layers.Dense(1, activation='linear', kernel_initializer=tf.keras.initializers.Zeros(),
                                kernel_regularizer=tf.keras.regularizers.l1(0.001))(hidden3)
# # second input for R, linear part
inputs2 = tf.keras.layers.Input(shape=[len(rtrain.keys())])
output2 = tf.keras.layers.Dense(1, activation='linear',
                                kernel_initializer=tf.keras.initializers.Constant(1 / 43),
                                kernel_regularizer=tf.keras.regularizers.l2(0.001)
                                )(inputs2)

Спасибо!

...