diff --git a/spacy/syntax/_parser_model.pyx b/spacy/syntax/_parser_model.pyx index b2ecca689..0ff001523 100644 --- a/spacy/syntax/_parser_model.pyx +++ b/spacy/syntax/_parser_model.pyx @@ -213,8 +213,7 @@ class ParserModel(Model): self._layers[-1]._layers[-1] = larger def begin_training(self, X, y=None): - for layer in self._layers: - layer.begin_training(X, y=y) + self.lower.begin_training(X, y=y) @property def tok2vec(self): diff --git a/spacy/syntax/nn_parser.pyx b/spacy/syntax/nn_parser.pyx index 3d6049513..5449dbbfb 100644 --- a/spacy/syntax/nn_parser.pyx +++ b/spacy/syntax/nn_parser.pyx @@ -525,8 +525,7 @@ cdef class Parser: else: if sgd is None: sgd = self.create_optimizer() - self.model.begin_training( - self.model.ops.allocate((5, cfg['token_vector_width']))) + self.model.begin_training([]) self.cfg.update(cfg) return sgd diff --git a/spacy/tokens/doc.pyx b/spacy/tokens/doc.pyx index bfebe9304..16d6557c9 100644 --- a/spacy/tokens/doc.pyx +++ b/spacy/tokens/doc.pyx @@ -994,12 +994,12 @@ cdef int set_children_from_heads(TokenC* tokens, int length) except -1: tokens[i].l_edge = i tokens[i].r_edge = i # Twice, for non-projectivity - for _ in range(2): + for loop_count in range(2): # Set left edges for i in range(length): child = &tokens[i] head = &tokens[i + child.head] - if child < head: + if child < head and loop_count == 0: head.l_kids += 1 if child.l_edge < head.l_edge: head.l_edge = child.l_edge @@ -1009,7 +1009,7 @@ cdef int set_children_from_heads(TokenC* tokens, int length) except -1: for i in range(length-1, -1, -1): child = &tokens[i] head = &tokens[i + child.head] - if child > head: + if child > head and loop_count == 0: head.r_kids += 1 if child.r_edge > head.r_edge: head.r_edge = child.r_edge