1 回答
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
權(quán)重存儲(chǔ)在:
model.layers[n].weights
帶有l(wèi)ayers列表和n模型中的圖層索引。
在您的示例中,因?yà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])
為了解釋這些,假設(shè)第一層是h = ReLU(Ax+b)用x一個(gè)向量計(jì)算(9,)然后A是一個(gè)形狀矩陣(9,64)和b一個(gè)形狀向量(64,),h還有一個(gè)形狀向量(64,)。因此,model.layers[0].weights是兩個(gè)權(quán)重張量的列表[A, b]。
它不是線性回歸。如果你想要它,你需要制作一個(gè)更簡(jiǎn)單的模型:
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
然后,用數(shù)據(jù)訓(xùn)練后,model.layers[0].weights[0]會(huì)有形狀(9,1),也就是你的 β1, β2, ..., βk; 并且model.layers[0].weights[1]會(huì)有形狀(1,),這是你的 β0
添加回答
舉報(bào)
