From 7f23b40ad711c566d8fbdffa31d45e8a12500541 Mon Sep 17 00:00:00 2001 From: Ke Zhen Date: Wed, 15 Aug 2018 20:27:05 +0800 Subject: [PATCH 1/2] Update readme, conv and max_pool --- README.md | 123 +++++++++++++++++++++++++++++++- fastNLP/core/inference.py | 4 +- fastNLP/modules/aggregation/__init__.py | 5 ++ fastNLP/modules/aggregation/max_pool.py | 7 +- fastNLP/modules/encoder/__init__.py | 4 +- fastNLP/modules/encoder/conv.py | 23 ++++-- fastnlp-architecture.pdf | Bin 0 -> 90043 bytes 7 files changed, 154 insertions(+), 12 deletions(-) create mode 100644 fastnlp-architecture.pdf diff --git a/README.md b/README.md index 4068febc..6a8fa418 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,126 @@ -# FastNLP +# fastNLP + [![Build Status](https://travis-ci.org/fastnlp/fastNLP.svg?branch=master)](https://travis-ci.org/fastnlp/fastNLP) [![codecov](https://codecov.io/gh/fastnlp/fastNLP/branch/master/graph/badge.svg)](https://codecov.io/gh/fastnlp/fastNLP) + +fastNLP is a modular Natural Language Processing system based on PyTorch, for fast development of NLP tools. It divides the NLP model based on deep learning into different modules. These modules fall into 4 categories: encoder, interaction, aggregation and decoder, while each category contains different implemented modules. Encoder modules encode the input into some abstract representation, interaction modules make the information in the representation interact with each other, aggregation modules aggregate and reduce information, and decoder modules decode the representation into the output. Most current NLP models could be built on these modules, which vastly simplifies the process of developing NLP models. The architecture of fastNLP is as the figure below: + +![](fastnlp-architecture.pdf) + + +## Requirements + +- numpy>=1.14.2 +- torch==0.4.0 +- torchvision>=0.1.8 + + +## Resources + +- [Documentation](https://github.com/fastnlp/fastNLP) +- [Source Code](https://github.com/fastnlp/fastNLP) + + +## Example + +### Basic Usage + +A typical fastNLP routine is composed of four phases: loading dataset, pre-processing data, constructing model and training model. +```python +from fastNLP.models.base_model import BaseModel +from fastNLP.modules import encoder +from fastNLP.modules import aggregation + +from fastNLP.loader.dataset_loader import ClassDatasetLoader +from fastNLP.loader.preprocess import ClassPreprocess +from fastNLP.core.trainer import ClassificationTrainer +from fastNLP.core.inference import ClassificationInfer + + +class ClassificationModel(BaseModel): + """ + Simple text classification model based on CNN. + """ + + def __init__(self, class_num, vocab_size): + super(ClassificationModel, self).__init__() + + self.embed = encoder.Embedding(nums=vocab_size, dims=300) + self.conv = encoder.Conv( + in_channels=300, out_channels=100, kernel_size=3) + self.pool = aggregation.MaxPool() + self.output = encoder.Linear(input_size=100, output_size=class_num) + + def forward(self, x): + x = self.embed(x) # [N,L] -> [N,L,C] + x = self.conv(x) # [N,L,C_in] -> [N,L,C_out] + x = self.pool(x) # [N,L,C] -> [N,C] + x = self.output(x) # [N,C] -> [N, N_class] + return x + + +data_dir = 'data' # directory to save data and model +train_path = 'test/data_for_tests/text_classify.txt' # training set file + +# load dataset +ds_loader = ClassDatasetLoader("train", train_path) +data = ds_loader.load() + +# pre-process dataset +pre = ClassPreprocess(data_dir) +vocab_size, n_classes = pre.process(data, "data_train.pkl") + +# construct model +model_args = { + 'num_classes': n_classes, + 'vocab_size': vocab_size +} +model = ClassificationModel(class_num=n_classes, vocab_size=vocab_size) + +# train model +train_args = { + "epochs": 20, + "batch_size": 50, + "pickle_path": data_dir, + "validate": False, + "save_best_dev": False, + "model_saved_path": None, + "use_cuda": True, + "learn_rate": 1e-3, + "momentum": 0.9} +trainer = ClassificationTrainer(train_args) +trainer.train(model) + +# predict using model +seqs = [x[0] for x in data] +infer = ClassificationInfer(data_dir) +labels_pred = infer.predict(model, seqs) +``` + + +## Installation + +### Cloning From GitHub + +If you just want to use fastNLP, use: +```shell +git clone https://github.com/fastnlp/fastNLP +cd fastNLP +``` + +### PyTorch Installation + +Visit the [PyTorch official website] for installation instructions based on your system. In general, you could use: +```shell +# using conda +conda install pytorch torchvision -c pytorch +# or using pip +pip3 install torch torchvision +``` + + +## Project Structure + ``` FastNLP ├── docs @@ -90,5 +210,4 @@ FastNLP ├── test_seq_labeling.py ├── test_tester.py └── test_trainer.py - ``` diff --git a/fastNLP/core/inference.py b/fastNLP/core/inference.py index d4f53164..1dedf0d4 100644 --- a/fastNLP/core/inference.py +++ b/fastNLP/core/inference.py @@ -182,6 +182,6 @@ class ClassificationInfer(Inference): """ results = [] for batch_out in batch_outputs: - idx = np.argmax(batch_out.detach().numpy()) - results.append(self.index2label[idx]) + idx = np.argmax(batch_out.detach().numpy(), axis=-1) + results.extend([self.index2label[i] for i in idx]) return results diff --git a/fastNLP/modules/aggregation/__init__.py b/fastNLP/modules/aggregation/__init__.py index e69de29b..3c57625b 100644 --- a/fastNLP/modules/aggregation/__init__.py +++ b/fastNLP/modules/aggregation/__init__.py @@ -0,0 +1,5 @@ +from .max_pool import MaxPool + +__all__ = [ + 'MaxPool' +] diff --git a/fastNLP/modules/aggregation/max_pool.py b/fastNLP/modules/aggregation/max_pool.py index 12bdd96f..2e47a4f5 100644 --- a/fastNLP/modules/aggregation/max_pool.py +++ b/fastNLP/modules/aggregation/max_pool.py @@ -1,6 +1,7 @@ # python: 3.6 # encoding: utf-8 +import torch import torch.nn as nn import torch.nn.functional as F @@ -15,12 +16,12 @@ class MaxPool(nn.Module): self.dilation = dilation def forward(self, x): - # [N,C,L] -> [N,C] + x = torch.transpose(x, 1, 2) # [N,L,C] -> [N,C,L] kernel_size = x.size(2) - x = F.max_pool1d( + x = F.max_pool1d( # [N,L,C] -> [N,C,1] input=x, kernel_size=kernel_size, stride=self.stride, padding=self.padding, dilation=self.dilation) - return x.squeeze(dim=-1) + return x.squeeze(dim=-1) # [N,C,1] -> [N,C] diff --git a/fastNLP/modules/encoder/__init__.py b/fastNLP/modules/encoder/__init__.py index 25d1b1db..b4e689a7 100644 --- a/fastNLP/modules/encoder/__init__.py +++ b/fastNLP/modules/encoder/__init__.py @@ -1,7 +1,9 @@ from .embedding import Embedding from .linear import Linear from .lstm import Lstm +from .conv import Conv __all__ = ["Lstm", "Embedding", - "Linear"] + "Linear", + "Conv"] diff --git a/fastNLP/modules/encoder/conv.py b/fastNLP/modules/encoder/conv.py index 1aeedbd5..06a31dd8 100644 --- a/fastNLP/modules/encoder/conv.py +++ b/fastNLP/modules/encoder/conv.py @@ -1,8 +1,9 @@ # python: 3.6 # encoding: utf-8 +import torch import torch.nn as nn -from torch.nn.init import xavier_uniform +from torch.nn.init import xavier_uniform_ # import torch.nn.functional as F @@ -14,7 +15,7 @@ class Conv(nn.Module): def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, - groups=1, bias=True): + groups=1, bias=True, activation='relu'): super(Conv, self).__init__() self.conv = nn.Conv1d( in_channels=in_channels, @@ -25,7 +26,21 @@ class Conv(nn.Module): dilation=dilation, groups=groups, bias=bias) - xavier_uniform(self.conv.weight) + xavier_uniform_(self.conv.weight) + + activations = { + 'relu': nn.ReLU(), + 'tanh': nn.Tanh()} + if activation in activations: + self.activation = activations[activation] + else: + raise Exception( + 'Should choose activation function from: ' + + ', '.join([x for x in activations])) def forward(self, x): - return self.conv(x) # [N,C,L] + x = torch.transpose(x, 1, 2) # [N,L,C] -> [N,C,L] + x = self.conv(x) # [N,C_in,L] -> [N,C_out,L] + x = self.activation(x) + x = torch.transpose(x, 1, 2) # [N,C,L] -> [N,L,C] + return x diff --git a/fastnlp-architecture.pdf b/fastnlp-architecture.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3480f0251dcfddecd2eb49fb69cc5d37bcb62f20 GIT binary patch literal 90043 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 literal 0 KcmV+b0RR6000031 From ad3b59b11c641ac78314bf7dc003d6b6c0391842 Mon Sep 17 00:00:00 2001 From: Xipeng Qiu Date: Fri, 17 Aug 2018 00:05:33 +0800 Subject: [PATCH 2/2] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a8fa418..efa1b15b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ fastNLP is a modular Natural Language Processing system based on PyTorch, for fast development of NLP tools. It divides the NLP model based on deep learning into different modules. These modules fall into 4 categories: encoder, interaction, aggregation and decoder, while each category contains different implemented modules. Encoder modules encode the input into some abstract representation, interaction modules make the information in the representation interact with each other, aggregation modules aggregate and reduce information, and decoder modules decode the representation into the output. Most current NLP models could be built on these modules, which vastly simplifies the process of developing NLP models. The architecture of fastNLP is as the figure below: -![](fastnlp-architecture.pdf) +![](https://github.com/fastnlp/fastNLP/raw/master/fastnlp-architecture.pdf) ## Requirements