Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这个函数如何创建一个深度神经网络,而不仅仅是重命名同一个变量?_Python_Tensorflow_Deep Learning - Fatal编程技术网

Python 这个函数如何创建一个深度神经网络,而不仅仅是重命名同一个变量?

Python 这个函数如何创建一个深度神经网络,而不仅仅是重命名同一个变量?,python,tensorflow,deep-learning,Python,Tensorflow,Deep Learning,我正在从Geron的机器学习实践中进行自我学习,我对下一页方框[114]中的函数如何创建深度神经网络感到有点困惑 它只是看起来每次都用不同的名称重置相同的输入。有人能解释一下这是如何创建一个深层神经网络的吗?关于TensorFlow中的模型构造有一个强烈的误解。建议您在中阅读更多关于TensorFlow的计算图和该API的其他低级细节 使用TensorFlow构建的操作不绑定到Python变量 假设我们并不急于得到这个答案。调用tf.layers中的一个层构造函数或其他基本函数(如tf.nn中的

我正在从Geron的机器学习实践中进行自我学习,我对下一页方框[114]中的函数如何创建深度神经网络感到有点困惑


它只是看起来每次都用不同的名称重置相同的输入。有人能解释一下这是如何创建一个深层神经网络的吗?

关于TensorFlow中的模型构造有一个强烈的误解。建议您在中阅读更多关于TensorFlow的计算图和该API的其他低级细节

使用TensorFlow构建的操作不绑定到Python变量 假设我们并不急于得到这个答案。调用tf.layers中的一个层构造函数或其他基本函数(如tf.nn中的函数)时,将向当前活动图添加新操作,并返回对应于该层输出的张量。删除或更改用于保存这些张量的Python变量的内容时,这些操作不会消失

函数dnn所做的是迭代地创建一系列密集层。在每个步骤中,变量输入都会更改为指向最近创建的层的输出,从而允许将其输入到下一个层中。是使用与原始输入相同的变量,还是使用新的变量,这是一个意见问题。我自己经常使用一个新的变量。默认情况下,这将导致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打开相同的日志目录,我们可以得到以下图表:

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()