【问题标题】:How to better organize the nodes in tensorboard with keras?如何使用 keras 更好地组织 tensorboard 中的节点?
【发布时间】:2017-07-28 09:13:53
【问题描述】:

我使用 keras 而不是处理 tensorflow,因为它很简单。但是,当我尝试通过向model.fit()callbacks 参数发送keras.callbacks.Tensorboard 实例来可视化keras 中的计算图时。我从tensorboard 得到的图表太尴尬了, 出于演示目的,这里我只构建了一个非常简单的线性分类器,在 1 个密集层中有 1 个单元。但是图表看起来像这样:

我可以做和我们在 tensorflow 中做的一样的事情吗,比如使用 name_space 将事物组合在一起并给出层、偏差、权重名称?我的意思是,在这里的图表中,它是如此的混乱,我只能理解Dense 层和logistic loss 命名空间。但通常使用 tensorflow,我们可以看到类似 train 命名空间的东西,而这里没有那么多没有命名空间的节点。我怎样才能让它更清楚?

【问题讨论】:

    标签: tensorflow keras tensorboard


    【解决方案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
    

    【讨论】:

    • 谢谢。 plot_model 没有立即生效,我必须安装 pydot_nggraphviz 和 Graphviz 软件。但现在可以了。
    • 这仍然是最先进的,还是有任何解决方案可以将一些层分组到一个节点并仍然使用 tensorboard?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    相关资源
    最近更新 更多