build bidirectional encoder, given pre-computed word embeddings
(tparams, options)
| 301 | |
| 302 | |
| 303 | def build_encoder_bi(tparams, options): |
| 304 | """ |
| 305 | build bidirectional encoder, given pre-computed word embeddings |
| 306 | """ |
| 307 | # word embedding (source) |
| 308 | embedding = tensor.tensor3('embedding', dtype='float32') |
| 309 | embeddingr = embedding[::-1] |
| 310 | x_mask = tensor.matrix('x_mask', dtype='float32') |
| 311 | xr_mask = x_mask[::-1] |
| 312 | |
| 313 | # encoder |
| 314 | proj = get_layer(options['encoder'])[1](tparams, embedding, options, |
| 315 | prefix='encoder', |
| 316 | mask=x_mask) |
| 317 | projr = get_layer(options['encoder'])[1](tparams, embeddingr, options, |
| 318 | prefix='encoder_r', |
| 319 | mask=xr_mask) |
| 320 | |
| 321 | ctx = tensor.concatenate([proj[0][-1], projr[0][-1]], axis=1) |
| 322 | |
| 323 | return embedding, x_mask, ctx |
| 324 | |
| 325 | |
| 326 | # some utilities |
no test coverage detected