| 144 | """ |
| 145 | |
| 146 | def __init__(self, dict_map, embedding_dim, region_size, name, config, |
| 147 | padding=None, pretrained_embedding_file=None, dropout=0, |
| 148 | init_type=InitType.XAVIER_UNIFORM, low=0, high=1, mean=0, |
| 149 | std=1, fan_mode=FAN_MODE.FAN_IN, model_mode=ModeType.TRAIN, |
| 150 | region_embedding_type=RegionEmbeddingType.WC): |
| 151 | super(RegionEmbeddingLayer, self).__init__() |
| 152 | self.region_embedding_type = region_embedding_type |
| 153 | self.region_size = region_size |
| 154 | assert self.region_size % 2 == 1 |
| 155 | self.radius = int(region_size / 2) |
| 156 | self.embedding_dim = embedding_dim |
| 157 | self.embedding = Embedding( |
| 158 | dict_map, embedding_dim, "RegionWord" + name, config=config, |
| 159 | padding_idx=padding, |
| 160 | pretrained_embedding_file=pretrained_embedding_file, |
| 161 | dropout=dropout, init_type=init_type, low=low, high=high, mean=mean, |
| 162 | std=std, fan_mode=fan_mode, model_mode=model_mode) |
| 163 | self.context_embedding = Embedding( |
| 164 | dict_map, embedding_dim * region_size, "RegionContext" + name, |
| 165 | config=config, padding_idx=padding, dropout=dropout, |
| 166 | init_type=init_type, low=low, high=high, mean=mean, std=std, |
| 167 | fan_mode=fan_mode) |
| 168 | |
| 169 | def forward(self, vocab_ids): |
| 170 | seq_length = vocab_ids.size(1) |