我正在使用keras而不是处理tensorflow因为它的简单性。但是当我试图通过向keras.callbacks.Tensorboard
的{{1}}参数发送model.fit()
实例来实现keras中的计算图形时。我从callbacks
获得的图表非常尴尬,
为了演示目的,这里我只构建一个非常简单的线性分类器,在1个密集层中有1个单元。但图表看起来像这样:
我可以做与在tensorflow中所做的相同的事情,比如使用name_space将事物分组并给出图层,偏见,权重名称?我的意思是,在这里的图表中,它是如此混乱,我只能理解tensorboard
层和Dense
命名空间。但通常使用tensorflow,我们可以看到像logistic loss
命名空间这样的东西,而没有那么多没有命名空间的节点。我怎样才能说得更清楚?
答案 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