如何用keras更好地组织张量板中的节点?

时间:2017-07-28 09:13:54

标签: tensorflow keras tensorboard

我正在使用keras而不是处理tensorflow因为它的简单性。但是当我试图通过向keras.callbacks.Tensorboard的{​​{1}}参数发送model.fit()实例来实现keras中的计算图形时。我从callbacks获得的图表非常尴尬, 为了演示目的,这里我只构建一个非常简单的线性分类器,在1个密集层中有1个单元。但图表看起来像这样: enter image description here

我可以做与在tensorflow中所做的相同的事情,比如使用name_space将事物分组并给出图层,偏见,权重名称?我的意思是,在这里的图表中,它是如此混乱,我只能理解tensorboard层和Dense命名空间。但通常使用tensorflow,我们可以看到像logistic loss命名空间这样的东西,而没有那么多没有命名空间的节点。我怎样才能说得更清楚?

1 个答案:

答案 0 :(得分:1)

Tensorflow图显示了所有被调用的计算。你无法简化它。

作为替代方案,Keras拥有自己的逐层图表。这显示了一个清晰简洁的网络结构。您可以通过调用

来生成它
from keras.utils import plot_model
plot_model(model, to_file='/some/pathname/model.png')

最后,您还可以调用生成图表文字版本的model.summary(),并附上摘要。

以下是model.summary()的输出,例如:

Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
input_1 (InputLayer)             (None, 2048)          0                                            
____________________________________________________________________________________________________
activation_1 (Activation)        (None, 2048)          0                                            
____________________________________________________________________________________________________
dense_1 (Dense)                  (None, 511)           1047039                                      
____________________________________________________________________________________________________
activation_2 (Activation)        (None, 511)           0                                            
____________________________________________________________________________________________________
decoder_layer_1 (DecoderLayer)   (None, 512)           0                                            
____________________________________________________________________________________________________
ctg_output (OrLayer)             (None, 201)           102912                                       
____________________________________________________________________________________________________
att_output (OrLayer)             (None, 312)           159744                                       
====================================================================================================
Total params: 1,309,695.0
Trainable params: 1,309,695.0
Non-trainable params: 0.0