1 回答

TA貢獻1811條經驗 獲得超6個贊
權重存儲在:
model.layers[n].weights
帶有layers列表和n模型中的圖層索引。
在您的示例中,因為輸入形狀是(9,)
>>> len(model.layers[0].weights)
2
>>> model.layers[0].weights[0].shape
TensorShape([9, 64])
>>> model.layers[0].weights[1].shape
TensorShape([64])
為了解釋這些,假設第一層是h = ReLU(Ax+b)用x一個向量計算(9,)然后A是一個形狀矩陣(9,64)和b一個形狀向量(64,),h還有一個形狀向量(64,)。因此,model.layers[0].weights是兩個權重張量的列表[A, b]。
它不是線性回歸。如果你想要它,你需要制作一個更簡單的模型:
def build_model():
model = keras.Sequential([
layers.Dense(1, input_shape=[len(train_dataset.keys())])
])
optimizer = tf.keras.optimizers.RMSprop(0.001)
model.compile(loss='mse',
optimizer=optimizer,
metrics=['mae', 'mse'])
return model
然后,用數據訓練后,model.layers[0].weights[0]會有形狀(9,1),也就是你的 β1, β2, ..., βk; 并且model.layers[0].weights[1]會有形狀(1,),這是你的 β0
添加回答
舉報