text: local Select, parent = torch.class('nn.Select', 'nn.Module')
  
  function Select:__init(dimension,index)
     parent.__init(self)
     self.dimension = dimension
     self.index = index 
  end
  
  function Select:updateOutput(input)
     local output = input:select(self.dimension,self.index);
     self.output:resizeAs(output)
     return self.output:copy(output)
  end
  
  function Select:updateGradInput(input, gradOutput)
     self.gradInput:resizeAs(input)  
     self.gradInput:zero()
     self.gradInput:select(self.dimension,self.index):copy(gradOutput) 
     return self.gradInput
  end 
  