检查模型——各层权重、中间层输出
也许你也遇到过训练好的模型输出了一些奇怪的结果,比如总是输出不变的常数。排错到怀疑人生,可能都发现不了问题究竟出在哪。
这就需要你逐层分析输出结果,看下有没有诡异的地方。方法如下:
layer1 = tf.keras.layers.Dense(30)
layer2 = tf.keras.layers.Dense(50)
...
layer5 = tf.keras.layers.Dense(30)
model = tf.keras.models.Sequential([
layer1,
layer2,
...
layer5
])
你可以用这种方式重新训练网络,也可以把训练过的网络权重导入到这个网络里。
out1 = layer1(x)
out2 = layer1(out1)
out3 = layer1(out2)
...
网络权重的查看:
model.weights
或者
layer1.weights