У меня есть эти четыре слоя определены:Tensorflow: преобразование вручную создавать слои tf.contrib.layers
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)
чтения на https://www.tensorflow.org/versions/master/tutorials/layers/ и https://www.tensorflow.org/api_docs/python/tf/contrib/layers/fully_connected. Я прочитал в https://www.tensorflow.org/api_guides/python/contrib.layers#Higher_level_ops_for_building_neural_network_layers, что tf.contrib.layers.linear
является альтернативой линейному слою.
Но мой результат больше отличается от того, что я получил раньше, а затем, что это может быть случайно. Что я сделал неправильно в конфигурации слоев?