From dcc6d5d15d4e9733efe21c59065b80b521aa61f6 Mon Sep 17 00:00:00 2001 From: ChenXin Date: Fri, 12 Jul 2019 11:27:35 +0800 Subject: [PATCH] =?UTF-8?q?models=E7=9A=84=E6=96=87=E6=A1=A3=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=92=8C=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/source/fastNLP.models.base_model.rst | 7 ----- docs/source/fastNLP.models.bert.rst | 7 ----- .../source/fastNLP.models.enas_controller.rst | 7 ----- docs/source/fastNLP.models.enas_model.rst | 7 ----- docs/source/fastNLP.models.enas_trainer.rst | 7 ----- docs/source/fastNLP.models.enas_utils.rst | 7 ----- docs/source/fastNLP.models.rst | 6 ---- fastNLP/models/biaffine_parser.py | 2 ++ fastNLP/models/cnn_text_classification.py | 8 ++--- fastNLP/models/sequence_labeling.py | 9 ++++-- fastNLP/models/snli.py | 5 +++- fastNLP/models/star_transformer.py | 30 +++++++++---------- 12 files changed, 31 insertions(+), 71 deletions(-) delete mode 100644 docs/source/fastNLP.models.base_model.rst delete mode 100644 docs/source/fastNLP.models.bert.rst delete mode 100644 docs/source/fastNLP.models.enas_controller.rst delete mode 100644 docs/source/fastNLP.models.enas_model.rst delete mode 100644 docs/source/fastNLP.models.enas_trainer.rst delete mode 100644 docs/source/fastNLP.models.enas_utils.rst diff --git a/docs/source/fastNLP.models.base_model.rst b/docs/source/fastNLP.models.base_model.rst deleted file mode 100644 index fab1e6bf..00000000 --- a/docs/source/fastNLP.models.base_model.rst +++ /dev/null @@ -1,7 +0,0 @@ -fastNLP.models.base\_model -========================== - -.. automodule:: fastNLP.models.base_model - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/fastNLP.models.bert.rst b/docs/source/fastNLP.models.bert.rst deleted file mode 100644 index 3b9482eb..00000000 --- a/docs/source/fastNLP.models.bert.rst +++ /dev/null @@ -1,7 +0,0 @@ -fastNLP.models.bert -=================== - -.. automodule:: fastNLP.models.bert - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/fastNLP.models.enas_controller.rst b/docs/source/fastNLP.models.enas_controller.rst deleted file mode 100644 index 1ac97fac..00000000 --- a/docs/source/fastNLP.models.enas_controller.rst +++ /dev/null @@ -1,7 +0,0 @@ -fastNLP.models.enas\_controller module -====================================== - -.. automodule:: fastNLP.models.enas_controller - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/fastNLP.models.enas_model.rst b/docs/source/fastNLP.models.enas_model.rst deleted file mode 100644 index 92dbb810..00000000 --- a/docs/source/fastNLP.models.enas_model.rst +++ /dev/null @@ -1,7 +0,0 @@ -fastNLP.models.enas\_model -========================== - -.. automodule:: fastNLP.models.enas_model - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/fastNLP.models.enas_trainer.rst b/docs/source/fastNLP.models.enas_trainer.rst deleted file mode 100644 index eea79599..00000000 --- a/docs/source/fastNLP.models.enas_trainer.rst +++ /dev/null @@ -1,7 +0,0 @@ -fastNLP.models.enas\_trainer -============================ - -.. automodule:: fastNLP.models.enas_trainer - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/fastNLP.models.enas_utils.rst b/docs/source/fastNLP.models.enas_utils.rst deleted file mode 100644 index c5e45b5f..00000000 --- a/docs/source/fastNLP.models.enas_utils.rst +++ /dev/null @@ -1,7 +0,0 @@ -fastNLP.models.enas\_utils -========================== - -.. automodule:: fastNLP.models.enas_utils - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/fastNLP.models.rst b/docs/source/fastNLP.models.rst index 5a237569..75c5a2aa 100644 --- a/docs/source/fastNLP.models.rst +++ b/docs/source/fastNLP.models.rst @@ -11,14 +11,8 @@ fastNLP.models .. toctree:: - fastNLP.models.base_model - fastNLP.models.bert fastNLP.models.biaffine_parser fastNLP.models.cnn_text_classification - fastNLP.models.enas_controller - fastNLP.models.enas_model - fastNLP.models.enas_trainer - fastNLP.models.enas_utils fastNLP.models.sequence_labeling fastNLP.models.snli fastNLP.models.star_transformer diff --git a/fastNLP/models/biaffine_parser.py b/fastNLP/models/biaffine_parser.py index dc13ba42..29487864 100644 --- a/fastNLP/models/biaffine_parser.py +++ b/fastNLP/models/biaffine_parser.py @@ -130,6 +130,8 @@ def _find_cycle(vertices, edges): class GraphParser(BaseModel): """ + 别名::class:`fastNLP.models.GraphParser` :class:`fastNLP.models.baffine_parser.GraphParser` + 基于图的parser base class, 支持贪婪解码和最大生成树解码 """ diff --git a/fastNLP/models/cnn_text_classification.py b/fastNLP/models/cnn_text_classification.py index e7d5f0ca..e00a0697 100644 --- a/fastNLP/models/cnn_text_classification.py +++ b/fastNLP/models/cnn_text_classification.py @@ -25,14 +25,14 @@ class CNNText(torch.nn.Module): :param int,tuple(int) kernel_sizes: 输出channel的kernel大小。 :param float dropout: Dropout的大小 """ - + def __init__(self, init_embed, num_classes, kernel_nums=(30, 40, 50), kernel_sizes=(1, 3, 5), dropout=0.5): super(CNNText, self).__init__() - + # no support for pre-trained embedding currently self.embed = embedding.Embedding(init_embed) self.conv_pool = encoder.ConvMaxpool( @@ -41,7 +41,7 @@ class CNNText(torch.nn.Module): kernel_sizes=kernel_sizes) self.dropout = nn.Dropout(dropout) self.fc = nn.Linear(sum(kernel_nums), num_classes) - + def forward(self, words, seq_len=None): """ @@ -58,7 +58,7 @@ class CNNText(torch.nn.Module): x = self.dropout(x) x = self.fc(x) # [N,C] -> [N, N_class] return {C.OUTPUT: x} - + def predict(self, words, seq_len=None): """ :param torch.LongTensor words: [batch_size, seq_len],句子中word的index diff --git a/fastNLP/models/sequence_labeling.py b/fastNLP/models/sequence_labeling.py index 8f9fdcaf..4bf3f95f 100644 --- a/fastNLP/models/sequence_labeling.py +++ b/fastNLP/models/sequence_labeling.py @@ -1,10 +1,10 @@ """ - 本模块实现了两种序列标注模型 + 本模块实现了几种序列标注模型 """ __all__ = [ "SeqLabeling", "AdvSeqLabel", - "BiLSTMCRF" + # "BiLSTMCRF" ] import torch @@ -25,7 +25,10 @@ from ..modules import ConditionalRandomField class BiLSTMCRF(BaseModel): """ 结构为BiLSTM + FC + Dropout + CRF. - TODO 补充文档 + + .. todo:: + 继续补充文档 + :param embed: tuple: :param num_classes: :param num_layers: diff --git a/fastNLP/models/snli.py b/fastNLP/models/snli.py index 0a76d48a..8e35b6bc 100644 --- a/fastNLP/models/snli.py +++ b/fastNLP/models/snli.py @@ -15,7 +15,10 @@ from ..core.utils import seq_len_to_mask class ESIM(BaseModel): - """ESIM model的一个PyTorch实现 + """ + 别名::class:`fastNLP.models.ESIM` :class:`fastNLP.models.snli.ESIM` + + ESIM model的一个PyTorch实现 论文参见: https://arxiv.org/pdf/1609.06038.pdf :param fastNLP.TokenEmbedding init_embedding: 初始化的TokenEmbedding diff --git a/fastNLP/models/star_transformer.py b/fastNLP/models/star_transformer.py index 97593f72..b95d1c25 100644 --- a/fastNLP/models/star_transformer.py +++ b/fastNLP/models/star_transformer.py @@ -34,7 +34,7 @@ class StarTransEnc(nn.Module): :param emb_dropout: 词嵌入的dropout概率. :param dropout: 模型除词嵌入外的dropout概率. """ - + def __init__(self, init_embed, hidden_size, num_layers, @@ -54,7 +54,7 @@ class StarTransEnc(nn.Module): head_dim=head_dim, dropout=dropout, max_len=max_len) - + def forward(self, x, mask): """ :param FloatTensor x: [batch, length, hidden] 输入的序列 @@ -79,7 +79,7 @@ class _Cls(nn.Module): nn.Dropout(dropout), nn.Linear(hid_dim, num_cls), ) - + def forward(self, x): h = self.fc(x) return h @@ -95,7 +95,7 @@ class _NLICls(nn.Module): nn.Dropout(dropout), nn.Linear(hid_dim, num_cls), ) - + def forward(self, x1, x2): x = torch.cat([x1, x2, torch.abs(x1 - x2), x1 * x2], 1) h = self.fc(x) @@ -121,7 +121,7 @@ class STSeqLabel(nn.Module): :param emb_dropout: 词嵌入的dropout概率. Default: 0.1 :param dropout: 模型除词嵌入外的dropout概率. Default: 0.1 """ - + def __init__(self, init_embed, num_cls, hidden_size=300, num_layers=4, @@ -141,7 +141,7 @@ class STSeqLabel(nn.Module): emb_dropout=emb_dropout, dropout=dropout) self.cls = _Cls(hidden_size, num_cls, cls_hidden_size) - + def forward(self, words, seq_len): """ @@ -154,7 +154,7 @@ class STSeqLabel(nn.Module): output = self.cls(nodes) output = output.transpose(1, 2) # make hidden to be dim 1 return {Const.OUTPUT: output} # [bsz, n_cls, seq_len] - + def predict(self, words, seq_len): """ @@ -186,7 +186,7 @@ class STSeqCls(nn.Module): :param emb_dropout: 词嵌入的dropout概率. Default: 0.1 :param dropout: 模型除词嵌入外的dropout概率. Default: 0.1 """ - + def __init__(self, init_embed, num_cls, hidden_size=300, num_layers=4, @@ -206,7 +206,7 @@ class STSeqCls(nn.Module): emb_dropout=emb_dropout, dropout=dropout) self.cls = _Cls(hidden_size, num_cls, cls_hidden_size, dropout=dropout) - + def forward(self, words, seq_len): """ @@ -219,7 +219,7 @@ class STSeqCls(nn.Module): y = 0.5 * (relay + nodes.max(1)[0]) output = self.cls(y) # [bsz, n_cls] return {Const.OUTPUT: output} - + def predict(self, words, seq_len): """ @@ -251,7 +251,7 @@ class STNLICls(nn.Module): :param emb_dropout: 词嵌入的dropout概率. Default: 0.1 :param dropout: 模型除词嵌入外的dropout概率. Default: 0.1 """ - + def __init__(self, init_embed, num_cls, hidden_size=300, num_layers=4, @@ -271,7 +271,7 @@ class STNLICls(nn.Module): emb_dropout=emb_dropout, dropout=dropout) self.cls = _NLICls(hidden_size, num_cls, cls_hidden_size) - + def forward(self, words1, words2, seq_len1, seq_len2): """ @@ -283,16 +283,16 @@ class STNLICls(nn.Module): """ mask1 = seq_len_to_mask(seq_len1) mask2 = seq_len_to_mask(seq_len2) - + def enc(seq, mask): nodes, relay = self.enc(seq, mask) return 0.5 * (relay + nodes.max(1)[0]) - + y1 = enc(words1, mask1) y2 = enc(words2, mask2) output = self.cls(y1, y2) # [bsz, n_cls] return {Const.OUTPUT: output} - + def predict(self, words1, words2, seq_len1, seq_len2): """