with data con python neural-network pybrain

python - data - valores de activación para todos los nodos en una red PyBrain



data mining with python (1)

Siento que esto debería ser trivial, pero he tenido problemas para encontrar algo útil en la documentación de PyBrain, aquí o en otro lugar.

El problema es este:

Tengo una red de feedforward de tres capas (entrada, oculta, salida) construida y entrenada en PyBrain. Cada capa tiene tres nodos. Quiero activar la red con entradas nuevas y almacenar los valores de activación resultantes de los nodos en la capa oculta. Por lo que puedo decir, net.activate () y net.activateOnDataset () solo devolverán los valores de activación de los nodos de capa de salida y son las únicas formas de activar una red.

¿Cómo puedo obtener las activaciones de capa oculta de una red PyBrain?

No estoy seguro de que el código de ejemplo ayude mucho en este caso, pero aquí hay algunos de todos modos (con un conjunto de capacitación reducido):

from pybrain.tools.shortcuts import buildNetwork from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import BackpropTrainer net = buildNetwork(3, 3, 3) dataSet = SupervisedDataSet(3, 3) dataSet.addSample((0, 0, 0), (0, 0, 0)) dataSet.addSample((1, 1, 1), (0, 0, 0)) dataSet.addSample((1, 0, 0), (1, 0, 0)) dataSet.addSample((0, 1, 0), (0, 1, 0)) dataSet.addSample((0, 0, 1), (0, 0, 1)) trainer = BackpropTrainer(net, dataSet) trained = False acceptableError = 0.001 # train until acceptable error reached while trained == False : error = trainer.train() if error < acceptableError : trained = True result = net.activate([0.5, 0.4, 0.7]) print result

En este caso, la funcionalidad deseada es imprimir una lista de los valores de activación de la capa oculta.


Parece que esto debería funcionar:

net[''in''].outputbuffer[net[''in''].offset] net[''hidden0''].outputbuffer[net[''hidden0''].offset]

Puramente basado en mirar el código fuente .