Будет ли приведенный ниже код представлять один или два слоя? Я в замешательстве, потому что не должно быть входной слой в нейронной сети?

input_layer = slim.fully_connected(input, 6000, activation_fn=tf.nn.relu)
output = slim.fully_connected(input_layer, num_output)

Содержит ли это скрытый слой? Я просто пытаюсь визуализировать сеть. Заранее спасибо!

1
dooder 28 Май 2017 в 13:04

2 ответа

Лучший ответ

enter image description here

У вас есть нейронная сеть с одним скрытым слоем. В вашем коде input соответствует слою 'Input' на изображении выше. input_layer - это то, что изображение называет «Скрытым». output - это то, что изображение называет «Вывод».

Помните, что «входной слой» нейронной сети не является традиционным полностью подключенным слоем, поскольку это просто необработанные данные без активации. Это немного неправильно. Эти нейроны на рисунке выше во входном слое не совпадают с нейронами в скрытом слое или выходном слое.

1
Sam P 31 Май 2017 в 18:57

Из tenorflow-slim:

Кроме того, оператор slim.stack в TF-Slim позволяет вызывающей стороне неоднократно применять одну и ту же операцию с разными аргументами для создания стека или башни слоев. slim.stack также создает новый tf.variable_scope для каждой создаваемой операции. Например, простой способ создания многослойного персептрона (MLP):

# Verbose way:
x = slim.fully_connected(x, 32, scope='fc/fc_1')
x = slim.fully_connected(x, 64, scope='fc/fc_2')
x = slim.fully_connected(x, 128, scope='fc/fc_3')

# Equivalent, TF-Slim way using slim.stack:
slim.stack(x, slim.fully_connected, [32, 64, 128], scope='fc')

Таким образом, упомянутая здесь сеть представляет собой [32, 64,128] сеть - слой со скрытым размером 64.

0
Thomas W 1 Июн 2017 в 13:53