ted*_*ddy 2 python linear-regression keras tf.keras
具有 k 个预测变量 X1, X2, ..., Xk\n 和响应 Y 的多元线性回归模型可以写为 y = \xce\xb20 + \xce\xb21X1 + \xce\xb22X2 + \xc2\xb7\xc2 \xb7\xc2\xb7\xce\xb2kXk + ".
\n\n我按照此处的教程使用 tf.keras 进行基本回归。https://www.tensorflow.org/tutorials/keras/regression。是否可以输出 \xce\xb2 变量,以便我可以检查它们对响应的贡献?
\n\n顺便说一下,教程让您构建的模型看起来像这样:
\n\ndef build_model():\n model = keras.Sequential([\n layers.Dense(64, activation=\'relu\', input_shape=[len(train_dataset.keys())]),\n layers.Dense(64, activation=\'relu\'),\n layers.Dense(1)\n ])\n\n optimizer = tf.keras.optimizers.RMSprop(0.001)\n\n model.compile(loss=\'mse\',\n optimizer=optimizer,\n metrics=[\'mae\', \'mse\'])\n return model\nRun Code Online (Sandbox Code Playgroud)\n\n9.在哪里len(train_dataset.keys())?
权重存储在:
\n\nmodel.layers[n].weights\nRun Code Online (Sandbox Code Playgroud)\n\n带有模型中的layers列表和图层索引。n
在您的示例中,因为输入形状是(9,)
>>> len(model.layers[0].weights)\n2\n>>> model.layers[0].weights[0].shape\nTensorShape([9, 64])\n>>> model.layers[0].weights[1].shape\nTensorShape([64])\nRun Code Online (Sandbox Code Playgroud)\n\n为了解释这些,假设第一层是h = ReLU(Ax+b)用 的x向量进行计算,(9,)然后A是一个形状的矩阵(9,64)和b一个形状的向量(64,),以及h一个形状的向量(64,)。因此,model.layers[0].weights是两个权重张量的列表[A, b]。
它不是线性回归。如果你想要这样,你需要制作一个更简单的模型:
\n\ndef build_model():\n model = keras.Sequential([\n layers.Dense(1, input_shape=[len(train_dataset.keys())])\n ])\n\n optimizer = tf.keras.optimizers.RMSprop(0.001)\n\n model.compile(loss='mse',\n optimizer=optimizer,\n metrics=['mae', 'mse'])\n return model\nRun Code Online (Sandbox Code Playgroud)\n\n然后,经过数据训练后,model.layers[0].weights[0]将具有形状(9,1),即您的 \xce\xb21, \xce\xb22, ..., \xce\xb2k; 并且model.layers[0].weights[1]将具有形状(1,),这是您的 \xce\xb20
| 归档时间: |
|
| 查看次数: |
2723 次 |
| 最近记录: |