Esempio n. 1
0
def buildNetwork(rnn_size):
   """
   Build an RNN with softmax output
   """

   net = RecurrentNeuralNetwork()

   input_layer = InputLayer(27)       # Input is 27 unit vector
   recurrent_layer = RecurrentLayer(rnn_size)
   output_layer = SoftmaxLayer(34)

   input_to_recurrent = FullConnection(input_layer.output, recurrent_layer.input)
   recurrent_to_output = FullConnection(recurrent_layer.output, output_layer.input)
   recurrent_bias = Bias(recurrent_layer.input)
   output_bias = Bias(output_layer.input) 

   target_layer = InputLayer(34)      # 34 classes!
   objective_layer = CrossEntropyObjective(output_layer.output, target_layer.output)

   net.addLayer(input_layer)
   net.addLayer(target_layer)
   net.addConnection(input_to_recurrent)
   net.addConnection(recurrent_bias)
   net.addRecurrentLayer(recurrent_layer)
   net.addConnection(recurrent_to_output)
   net.addConnection(output_bias)
   net.addLayer(output_layer)
   net.addObjective(objective_layer)

   net.setInputLayer(input_layer)
   net.setTargetLayer(target_layer)
   net.setOutputLayer(output_layer)
   net.setObjective(objective_layer)

   net.randomize()

   return net