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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�coE@HmJ$*#O(3 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 Yc_Tf&|HYh=vZ9PElZc46kq*;;0bgMgWdHyG literal 0 HcmV?d00001 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