recurrente - redes neuronales con python ejemplos
Creando conectividad personalizada en redes neuronales PyBrain (2)
Una forma alternativa a la sugerida por schaul es utilizar múltiples capas de entrada.
#create network
net = FeedForwardNetwork()
# create and add modules
input_1 = LinearLayer(6)
net.addInputModule(input_1)
input_2 = LinearLayer(3)
net.addInputModule(input_2)
h1 = SigmoidLayer(2)
net.addModule(h1)
h2 = SigmoidLayer(2)
net.addModule(h2)
outp = SigmoidLayer(1)
net.addOutputModule(outp)
# create connections
net.addConnection(FullConnection(input_1, h1))
net.addConnection(FullConnection(input_2, h2))
net.addConnection(FullConnection(h1, h2))
net.addConnection(FullConnection(h2, outp))
net.sortModules()
Quiero crear una red neuronal artificial (en PyBrain) que sigue el siguiente diseño:
Sin embargo, no puedo encontrar la manera correcta de lograr esto. La única opción que veo en la documentación es la forma de crear capas totalmente conectadas, que no es lo que quiero: quiero que algunos de mis nodos de entrada estén conectados a la segunda capa oculta y no a la primera.
La solución es utilizar el tipo de conexión de su elección, pero con parámetros de corte : inSliceFrom
, inSliceTo
, outSliceFrom
y outSliceTo
. Estoy de acuerdo en que la documentación debe mencionar esto, hasta ahora solo está en los comentarios de la clase de Connection
.
Aquí está el código de ejemplo para su caso:
#create network and modules
net = FeedForwardNetwork()
inp = LinearLayer(9)
h1 = SigmoidLayer(2)
h2 = TanhLayer(2)
outp = LinearLayer(1)
# add modules
net.addOutputModule(outp)
net.addInputModule(inp)
net.addModule(h1)
net.addModule(h2)
# create connections
net.addConnection(FullConnection(inp, h1, inSliceTo=6))
net.addConnection(FullConnection(inp, h2, inSliceFrom=6))
net.addConnection(FullConnection(h1, h2))
net.addConnection(FullConnection(h2, outp))
# finish up
net.sortModules()