2019-10-25 23:28:20 +03:00
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
from thinc.api import chain
|
|
|
|
from thinc.v2v import Maxout
|
|
|
|
from thinc.misc import LayerNorm
|
2019-11-07 13:45:22 +03:00
|
|
|
from ..util import registry, make_layer
|
2019-10-25 23:28:20 +03:00
|
|
|
|
|
|
|
|
2019-11-07 13:45:22 +03:00
|
|
|
@registry.architectures.register("thinc.FeedForward.v1")
|
2019-10-25 23:28:20 +03:00
|
|
|
def FeedForward(config):
|
|
|
|
layers = [make_layer(layer_cfg) for layer_cfg in config["layers"]]
|
|
|
|
model = chain(*layers)
|
|
|
|
model.cfg = config
|
|
|
|
return model
|
|
|
|
|
2019-10-28 14:43:55 +03:00
|
|
|
|
2019-11-07 13:45:22 +03:00
|
|
|
@registry.architectures.register("spacy.LayerNormalizedMaxout.v1")
|
2019-10-25 23:28:20 +03:00
|
|
|
def LayerNormalizedMaxout(config):
|
|
|
|
width = config["width"]
|
|
|
|
pieces = config["pieces"]
|
2019-10-28 00:19:10 +03:00
|
|
|
layer = LayerNorm(Maxout(width, pieces=pieces))
|
2019-10-25 23:28:20 +03:00
|
|
|
layer.nO = width
|
|
|
|
return layer
|