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 Tensorflow:将手动构建层转换为tf.contrib.layers_Python_Tensorflow - Fatal编程技术网

Python Tensorflow:将手动构建层转换为tf.contrib.layers

Python Tensorflow:将手动构建层转换为tf.contrib.layers,python,tensorflow,Python,Tensorflow,我定义了以下四个层: layer_1 = tf.add( tf.matmul(input, tf.Variable(tf.random_normal([n_input, n_hidden_1])), tf.Variable(tf.random_normal([n_hidden_1])))) layer_2 = tf.nn.sigmoid(tf.add( tf.matmul(layer_1, tf.Variable(tf.random_normal([n_hidden_1,

我定义了以下四个层:

layer_1 = tf.add(
    tf.matmul(input, tf.Variable(tf.random_normal([n_input, n_hidden_1])),
    tf.Variable(tf.random_normal([n_hidden_1]))))
layer_2 = tf.nn.sigmoid(tf.add(
    tf.matmul(layer_1, tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])),
    tf.Variable(tf.random_normal([n_hidden_2]))))
layer_3 = tf.nn.sigmoid(tf.add(
    tf.matmul(layer_2, tf.Variable(tf.random_normal([n_hidden_2, n_hidden_1])))),
    tf.Variable(tf.random_normal([n_hidden_1]))))
layer_4 = tf.add(
    tf.matmul(layer_3, tf.Variable(tf.random_normal([n_hidden_1, n_input]))),
    tf.Variable(tf.random_normal([n_input])))
我想将此代码转换为基于
tf.contrib.layers
的代码。到目前为止我

layer_1 = tf.contrib.layers.fully_connected(
    inputs=input,
    num_outputs=n_hidden_1,
    activation_fn=None)
layer_2 = tf.contrib.layers.fully_connected(
    inputs=layer_1,
    num_outputs=n_hidden_2,
    activation_fn=tf.nn.sigmoid)
layer_3 = tf.contrib.layers.fully_connected(
    inputs=layer_2,
    num_outputs=n_hidden_1,
    activation_fn=tf.nn.sigmoid)
layer_4 = tf.contrib.layers.linear(
    inputs=layer_3,
    num_outputs=n_input)
通过阅读和阅读。我读到
tf.contrib.layers.linear
是线性层的替代品


但是我的输出与我之前得到的相比有更多的不同,这可能是偶然的。我在层的配置中做错了什么?

您的代码和
tf.contrib.layers
版本之间的一个区别是默认初始值设定项不同:

  • 权重的初始值设定项默认为
  • 偏差的初始值设定项默认为
这些通常被认为是完全连接层的良好默认设置,但您可以按如下方式使用替换它们:

layer_1 = tf.contrib.layers.fully_connected(
    inputs=input,
    num_outputs=n_hidden_1,
    activation_fn=None,
    weights_initializer=tf.random_normal_initializer(),
    biases_initializer=tf.random_normal_initializer())
# ...