mirror of
https://github.com/explosion/spaCy.git
synced 2025-07-11 08:42:28 +03:00
Add test for backpropagating padding
This commit is contained in:
parent
391fce09d9
commit
a22f96c3f1
|
@ -6,6 +6,7 @@ from .. import util
|
||||||
from ..displacy import parse_deps, parse_ents
|
from ..displacy import parse_deps, parse_ents
|
||||||
from ..tokens import Span
|
from ..tokens import Span
|
||||||
from .util import get_doc
|
from .util import get_doc
|
||||||
|
from .._ml import PrecomputableAffine
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import pytest
|
import pytest
|
||||||
|
@ -59,3 +60,19 @@ def test_displacy_parse_deps(en_vocab):
|
||||||
assert deps['arcs'] == [{'start': 0, 'end': 1, 'label': 'nsubj', 'dir': 'left'},
|
assert deps['arcs'] == [{'start': 0, 'end': 1, 'label': 'nsubj', 'dir': 'left'},
|
||||||
{'start': 2, 'end': 3, 'label': 'det', 'dir': 'left'},
|
{'start': 2, 'end': 3, 'label': 'det', 'dir': 'left'},
|
||||||
{'start': 1, 'end': 3, 'label': 'attr', 'dir': 'right'}]
|
{'start': 1, 'end': 3, 'label': 'attr', 'dir': 'right'}]
|
||||||
|
|
||||||
|
|
||||||
|
def test_PrecomputableAffine(nO=4, nI=5, nF=3, nP=2):
|
||||||
|
model = PrecomputableAffine(nO=nO, nI=nI, nF=nF, nP=nP)
|
||||||
|
assert model.W.shape == (nF, nO, nP, nI)
|
||||||
|
tensor = model.ops.allocate((10, nI))
|
||||||
|
Y, get_dX = model.begin_update(tensor)
|
||||||
|
assert Y.shape == (tensor.shape[0]+1, nF, nO, nP)
|
||||||
|
assert model.d_pad.shape == (1, nF, nO, nP)
|
||||||
|
dY = model.ops.allocate((15, nF, nO, nP))
|
||||||
|
ids = model.ops.allocate((15, nF))
|
||||||
|
ids[1,2] = -1
|
||||||
|
dY[1,2] = 1
|
||||||
|
assert model.d_pad[0, 2, 0, 0] == 0.
|
||||||
|
model._backprop_padding(dY, ids)
|
||||||
|
assert model.d_pad[0, 2, 0, 0] == 1.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user