model.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:teras 作者: chantera 项目源码 文件源码
def __call__(self, chars):
        xp = self.xp
        if not isinstance(chars, (tuple, list)):
            chars = [chars]
        lengths = [len(_chars) for _chars in chars]
        n_words = len(lengths)
        pad_width = self._pad_width

        char_ids = F.PadSequence(length=max(lengths) + pad_width,
                                 padding=self._pad_id).forward(chars)[0]
        left_pads = xp.full((n_words, pad_width), self._pad_id, xp.int32)
        char_ids = xp.concatenate((left_pads, xp.array(char_ids)), axis=1)
        """note: cupy does not have `inf`."""
        mask = xp.full(char_ids.shape, np.inf)
        for i, length in enumerate(lengths):
            mask[i, pad_width:pad_width + length] = 0
        mask = xp.expand_dims(mask, axis=2)

        xs = self.embed(char_ids)
        xs = F.dropout(xs, self._dropout)
        C = self.conv(F.expand_dims(xs, axis=1))
        C = F.transpose(F.squeeze(C, axis=3), (0, 2, 1))
        """
        assert C.shape == (n_words,
                           pad_width + max(lengths) + pad_width,
                           self.out_size)
        """
        ys = F.max(C - mask, axis=1)
        return ys
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号