首页 > 解决方案 > 关于 tf.layers .dense 的问题

问题描述

我最近才开始研究tensorflow。在做一些练习时,会出现一个问题。对于构建隐藏层,据我所知有两种定义方法。

  1. 通过使用 tf.layers.dense,定义全连接层,例如

    layer_1=tf.layers.dense(X,512,activation=tf.nn.relu) layer_2=tf.layers.dense(layer_1,256,activation=tf.nn.relu)

  2. 通过使用直接矩阵乘法 tf.add(tf.matmul(X,W),b) 来定义层,例如:

    w1= tf.Variable(tf.random_normal([in_size, out_size]))

    b1=....

    w2=....

    b2=...

    layer_1=tf.add(tf.matmul(x,w1),b1) layer_1=tf.nn.relu(relu) layer_2=tf.add(tf.matmul(layer_1,w2),b2) layer_2=tf.nn. relu(layer_2)

我尝试了这两种方法来构建多层神经网络,都可以工作。我的问题:它们之间有区别吗?我的猜测:1)在方法 2 中,W, b 可以由张量板监控,因为它们是明确定义的。

感谢任何反馈。谢谢

标签: pythontensorflow

解决方案


默认情况下,您的第一种方法将tf.glorot_uniform_initializer用于初始化权重,如此此处所述,因此性能可能略有不同。我认为您也可以使用第一种方法监控权重。


推荐阅读