为了账号安全,请及时绑定邮箱和手机立即绑定

此函数如何创建深度神经网络,而不仅仅是重命名相同的变量?

此函数如何创建深度神经网络,而不仅仅是重命名相同的变量?

蓝山帝景 2021-05-07 14:12:31
我正在从Geron的“机器学习动手”中自我学习,对此功能(如何在下一页的框[114]中创建)如何创建一个深度神经网络感到有些困惑。https://github.com/ageron/handson-ml/blob/master/11_deep_learning.ipynbhe_init = tf.variance_scaling_initializer()def dnn(inputs, n_hidden_layers=5, n_neurons=100, name=None,        activation=tf.nn.elu, initializer=he_init):    with tf.variable_scope(name, "dnn"):        for layer in range(n_hidden_layers):            inputs = tf.layers.dense(inputs, n_neurons, activation=activation,                                     kernel_initializer=initializer,                                     name="hidden%d" % (layer + 1))        return inputs看起来每次都使用不同的名称重置相同的输入。有人可以解释这是如何创建深度神经网络的吗?
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

关于TensorFlow中的模型构建存在强烈的误解。建议您在官方指南中阅读有关TensorFlow的计算图和该API的其他低级详细信息的更多信息。


使用TensorFlow构建的操作未绑定到Python变量(假设对于此答案,我们不在Eager模式下)。当调用中的层构造函数之一tf.layers(或中的其他基本函数,例如中的tf.nn)时,这会将新操作添加到当前活动的图形中,并返回Tensor与该层的输出相对应的图。删除或更改用于保留这些张量的Python变量的内容时,这些操作不会消失。


该函数的dnn作用是迭代创建一系列密集层。在每个步骤中,该变量inputs都会更改为指向最新创建的图层的输出,从而可以将其“馈入”到下一个图层。是否使用与原始输入相同的变量或为此使用新的变量是一个意见问题(我经常net自己使用一个新变量)。默认情况下,这将导致5个完全连接的层的序列。在所有这一切中,只构建了图。此处实际没有应用网络训练或权重初始化过程。


这也可以通过视觉验证。以下代码会将图形的签名写入TensorFlow摘要文件:


he_init = tf.variance_scaling_initializer()


def dnn(inputs, n_hidden_layers=5, n_neurons=100, name=None,

        activation=tf.nn.elu, initializer=he_init):

    with tf.variable_scope(name, "dnn"):

        for layer in range(n_hidden_layers):

            inputs = tf.layers.dense(inputs, n_neurons, activation=activation,

                                     kernel_initializer=initializer,

                                     name="hidden%d" % (layer + 1))

        return inputs


x = tf.placeholder(tf.float32, [32, 128])

y = dnn(x)

writer = tf.summary.FileWriter(logdir='mydnn', graph=tf.get_default_graph())

writer.flush()

通过使用TensorBoard打开相同的日志目录,我们得到下图:

//img1.sycdn.imooc.com//609a2e070001ee7104510589.jpg

查看完整回答
反对 回复 2021-05-11
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信