use*_*931 4 visualization lstm keras recurrent-neural-network machine-learning-model
与我从.h5文件加载该训练模型时相比,在训练后测试 Keras LSTM 模型时,我有很大的不同(第一个的准确度总是 > 0.85,但后者的准确度总是低于 < 0.2,即随机猜测) .
但是我检查了权重,它们是相同的,而且 Keras 给我的稀疏布局 viaplot_model是相同的,但由于这只能检索粗略的概述:
是否可以显示 Keras 模型的完整布局(尤其是节点连接)?
如果您使用 tensorflow 后端,除了plot_model,您还可以使用keras.callbacks.TensorBoard回调在 tensorboard 中可视化整个图形。例子:
callback = keras.callbacks.TensorBoard(log_dir='./graph',
histogram_freq=0,
write_graph=True,
write_images=True)
model.fit(..., callbacks=[callback])
Run Code Online (Sandbox Code Playgroud)
然后tensorboard --logdir ./graph从同一目录运行。
这是一个快速的捷径,但你可以走得更远。例如,添加 tensorflow 代码以在自定义tf.Graph实例中定义(加载)模型,如下所示:
from keras.layers import LSTM
import tensorflow as tf
my_graph = tf.Graph()
with my_graph.as_default():
# All ops / variables in the LSTM layer are created as part of our graph
x = tf.placeholder(tf.float32, shape=(None, 20, 64))
y = LSTM(32)(x)
Run Code Online (Sandbox Code Playgroud)
.. 之后,您可以列出所有具有依赖关系的图节点,评估任何变量,显示图拓扑等,以比较模型。
我个人认为,最简单的方法是设置自己的 session。它适用于所有情况,只需最少的修补:
import tensorflow as tf
from keras import backend as K
sess = tf.Session()
K.set_session(sess)
...
# Now can evaluate / access any node in this session, e.g. `sess.graph`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |