          if self.nP == 1:
              mask = state_vector >= 0.
              state_vector *= mask
          else:
              state_vector = state_vector.reshape(
                  (state_vector.shape[0], self.nO, self.nP))
              state_vector, mask = self.ops.maxout(state_vector)
  
          def backprop_nonlinearity(d_best, sgd=None):
              if self.nP == 1:
                  return d_best * mask
 
</s> remove         lower = PrecomputableAffine(hidden_width * parser_maxout_pieces,
                    nF=cls.nr_feature, nI=token_vector_width)
 </s> add         lower = PrecomputableAffine(hidden_width,
                    nF=cls.nr_feature, nI=token_vector_width,
                    nP=parser_maxout_pieces) </s> remove                 d_vector = self.ops.backprop_maxout(d_best, mask, self.nP)
                return d_vector.reshape((d_vector.shape[0], self.nO*self.nP))
 </s> add                 return self.ops.backprop_maxout(d_best, mask, self.nP) </s> remove         cdef np.ndarray state_vector = numpy.zeros((token_ids.shape[0], self.nO*self.nP), dtype='f')
 </s> add         cdef np.ndarray state_vector = numpy.zeros(
            (token_ids.shape[0], self.nO, self.nP), dtype='f')
          if self.nP == 1:
              mask = state_vector >= 0.
              state_vector *= mask
          else:


              state_vector, mask = self.ops.maxout(state_vector)
  
          def backprop_nonlinearity(d_best, sgd=None):
              if self.nP == 1:
                  return d_best * mask
keep keep keep keep replace replace keep keep keep keep keep
 Make parser consistent if maxout==1 
spacy/syntax/nn_parser.pyx