资源算法QANet-pytorch

QANet-pytorch

2019-09-16 | |  110 |   0 |   0

QANet-pytorch

Introduction

An implementation of QANet with PyTorch.

Any contributions are welcome!

Current performance

| F1 | EM | Got by | |----|----|--------| | 66 | ? | InitialBug| | 64 | 50 | BangLiu|

Usage

  1. Install pytorch 0.4 for Python 3.6+

  2. Run pip install -r requirements.txt to install python dependencies.

  3. Run download.sh to download the dataset.

  4. Run python main.py --mode data to build tensors from the raw dataset.

  5. Run python main.py --mode train to train the model. After training, log/model.pt will be generated.

  6. Run python main.py --mode test to test an pretrained model. Default model file is log/model.pt

Structure

preproc.py: downloads dataset and builds input tensors.

main.py: program entry; functions about training and testing.

models.py: QANet structure.

config.py: configurations.

Differences from the paper

  1. The paper doesn't mention which activation function they used. I use relu.

  2. I don't set the embedding of <UNK> trainable.

  3. The connector between embedding layers and embedding encoders may be different from the implementation of Google, since the description in the paper is inconsistent (residual block can't be used because the dimensions of input and output are different) and they don't say how they implemented it.

TODO

  • [x] Reduce memory usage

  • [ ] Improve converging speed (to reach 60 F1 scores in 1000 iterations)

  • [ ] Reach state-of-art scroes of the original paper

  • [ ] Performance analysis

  • [ ] Test on SQuAD 2.0

Contributors

  1. InitialBug: found two bugs: (1) positional encodings require gradients; (2) wrong weight sharing among encoders.

  2. linthieda: fixed one issue about dependencies and offered computing resources.

  3. BangLiu: tested the model.

  4. wlhgtc: (1) improved the calculation of Context-Question Attention; (2) fixed a bug that is compacting embeddings before highway nets.

上一篇:gogh

下一篇:graphsage-simple

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...