未验证 提交 954f02ca 编写于 作者: S Steffy-zxf 提交者: GitHub

update docs (#5049)

* add paddle.models api reference docs

* update docs

* update docs

* update docs

* tmp

* update docs

* update docs

* update docs

* update docs

* update docs

* update docs
上级 beef44b8
...@@ -98,20 +98,20 @@ wget https://paddlenlp.bj.bcebos.com/data/senta_word_dict.txt ...@@ -98,20 +98,20 @@ wget https://paddlenlp.bj.bcebos.com/data/senta_word_dict.txt
CPU 启动: CPU 启动:
```shell ```shell
python train.py --vocab_path='./senta_word_dict.txt' --use_gpu=False --network_name=bilstm --lr=5e-4 --batch_size=64 --epochs=5 --save_dir='./checkpoints' python train.py --vocab_path='./senta_word_dict.txt' --use_gpu=False --network=bilstm --lr=5e-4 --batch_size=64 --epochs=5 --save_dir='./checkpoints'
``` ```
GPU 启动: GPU 启动:
```shell ```shell
# CUDA_VISIBLE_DEVICES=0 python train.py --vocab_path='./senta_word_dict.txt' --use_gpu=True --network_name=bilstm --lr=5e-4 --batch_size=64 --epochs=5 --save_dir='./checkpoints' # CUDA_VISIBLE_DEVICES=0 python train.py --vocab_path='./senta_word_dict.txt' --use_gpu=True --network=bilstm --lr=5e-4 --batch_size=64 --epochs=5 --save_dir='./checkpoints'
``` ```
以上参数表示: 以上参数表示:
* `vocab_path`: 词汇表文件路径。 * `vocab_path`: 词汇表文件路径。
* `use_gpu`: 是否使用GPU进行训练, 默认为`False` * `use_gpu`: 是否使用GPU进行训练, 默认为`False`
* `network_name`: 模型网络名称,默认为`bilstm_attn`, 可更换为bilstm, bigru, birnn,bow,lstm,rnn,gru,bilstm_attn,textcnn等。 * `network`: 模型网络名称,默认为`bilstm_attn`, 可更换为bilstm, bigru, birnn,bow,lstm,rnn,gru,bilstm_attn,textcnn等。
* `lr`: 学习率, 默认为5e-4。 * `lr`: 学习率, 默认为5e-4。
* `batch_size`: 运行一个batch大小,默认为64。 * `batch_size`: 运行一个batch大小,默认为64。
* `epochs`: 训练轮次,默认为5。 * `epochs`: 训练轮次,默认为5。
...@@ -140,13 +140,13 @@ checkpoints/ ...@@ -140,13 +140,13 @@ checkpoints/
CPU启动: CPU启动:
```shell ```shell
python predict.py --vocab_path='./senta_word_dict.txt' --use_gpu=False --network_name=bilstm --params_path=checkpoints/final.pdparams python predict.py --vocab_path='./senta_word_dict.txt' --use_gpu=False --network=bilstm --params_path=checkpoints/final.pdparams
``` ```
GPU启动: GPU启动:
```shell ```shell
CUDA_VISIBLE_DEVICES=0 python predict.py --vocab_path='./senta_word_dict.txt' --use_gpu=True --network_name=bilstm --params_path='./checkpoints/final.pdparams' CUDA_VISIBLE_DEVICES=0 python predict.py --vocab_path='./senta_word_dict.txt' --use_gpu=True --network=bilstm --params_path='./checkpoints/final.pdparams'
``` ```
将待预测数据分词完毕后,如以下示例: 将待预测数据分词完毕后,如以下示例:
......
...@@ -17,14 +17,15 @@ import os ...@@ -17,14 +17,15 @@ import os
import paddle import paddle
import paddlenlp as ppnlp import paddlenlp as ppnlp
from paddlenlp.data import Stack, Tuple, Pad
from paddlenlp.datasets import ChnSentiCorp from paddlenlp.datasets import ChnSentiCorp
from utils import load_vocab, generate_batch, convert_example from utils import load_vocab, convert_example
# yapf: disable # yapf: disable
parser = argparse.ArgumentParser(__doc__) parser = argparse.ArgumentParser(__doc__)
parser.add_argument("--epochs", type=int, default=3, help="Number of epoches for training.") parser.add_argument("--epochs", type=int, default=3, help="Number of epoches for training.")
parser.add_argument('--use_gpu', type=eval, default=True, help="Whether use GPU for training, input should be True or False") parser.add_argument('--use_gpu', type=eval, default=False, help="Whether use GPU for training, input should be True or False")
parser.add_argument("--lr", type=float, default=5e-4, help="Learning rate used to train.") parser.add_argument("--lr", type=float, default=5e-4, help="Learning rate used to train.")
parser.add_argument("--save_dir", type=str, default='chekpoints/', help="Directory to save model checkpoint") parser.add_argument("--save_dir", type=str, default='chekpoints/', help="Directory to save model checkpoint")
parser.add_argument("--batch_size", type=int, default=64, help="Total examples' number of a batch for training.") parser.add_argument("--batch_size", type=int, default=64, help="Total examples' number of a batch for training.")
...@@ -40,16 +41,21 @@ def create_dataloader(dataset, ...@@ -40,16 +41,21 @@ def create_dataloader(dataset,
mode='train', mode='train',
batch_size=1, batch_size=1,
use_gpu=False, use_gpu=False,
pad_token_id=0): pad_token_id=0,
batchify_fn=None):
""" """
Creats dataloader. Creats dataloader.
Args: Args:
dataset(obj:`paddle.io.Dataset`): Dataset instance. dataset(obj:`paddle.io.Dataset`): Dataset instance.
trans_fn(obj:`callable`, optional, defaults to `None`): function to convert a data sample to input ids, etc.
mode(obj:`str`, optional, defaults to obj:`train`): If mode is 'train', it will shuffle the dataset randomly. mode(obj:`str`, optional, defaults to obj:`train`): If mode is 'train', it will shuffle the dataset randomly.
batch_size(obj:`int`, optional, defaults to 1): The sample number of a mini-batch. batch_size(obj:`int`, optional, defaults to 1): The sample number of a mini-batch.
use_gpu(obj:`bool`, optional, defaults to obj:`False`): Whether to use gpu to run. use_gpu(obj:`bool`, optional, defaults to obj:`False`): Whether to use gpu to run.
pad_token_id(obj:`int`, optional, defaults to 0): The pad token index. pad_token_id(obj:`int`, optional, defaults to 0): The pad token index.
batchify_fn(obj:`callable`, optional, defaults to `None`): function to generate mini-batch data by merging
the sample list, None for only stack each fields of sample in axis
0(same as :attr::`np.stack(..., axis=0)`).
Returns: Returns:
dataloader(obj:`paddle.io.DataLoader`): The dataloader which generates batches. dataloader(obj:`paddle.io.DataLoader`): The dataloader which generates batches.
...@@ -68,7 +74,7 @@ def create_dataloader(dataset, ...@@ -68,7 +74,7 @@ def create_dataloader(dataset,
dataset, dataset,
batch_sampler=sampler, batch_sampler=sampler,
return_list=True, return_list=True,
collate_fn=lambda batch: generate_batch(batch, pad_token_id=pad_token_id)) collate_fn=batchify_fn)
return dataloader return dataloader
...@@ -99,15 +105,32 @@ if __name__ == "__main__": ...@@ -99,15 +105,32 @@ if __name__ == "__main__":
vocab=vocab, vocab=vocab,
unk_token_id=vocab['[UNK]'], unk_token_id=vocab['[UNK]'],
is_test=False) is_test=False)
batchify_fn = lambda samples, fn=Tuple(
Pad(axis=0, pad_val=vocab['[PAD]']), # input_ids
Stack(dtype="int64"), # seq len
Stack(dtype="int64") # label
): [data for data in fn(samples)]
train_loader = create_dataloader( train_loader = create_dataloader(
train_ds, trans_fn=trans_fn, batch_size=args.batch_size, mode='train') train_ds,
trans_fn=trans_fn,
batch_size=args.batch_size,
mode='train',
use_gpu=args.use_gpu,
batchify_fn=batchify_fn)
dev_loader = create_dataloader( dev_loader = create_dataloader(
dev_ds, dev_ds,
trans_fn=trans_fn, trans_fn=trans_fn,
batch_size=args.batch_size, batch_size=args.batch_size,
mode='validation') mode='validation',
use_gpu=args.use_gpu,
batchify_fn=batchify_fn)
test_loader = create_dataloader( test_loader = create_dataloader(
test_ds, trans_fn=trans_fn, batch_size=args.batch_size, mode='test') test_ds,
trans_fn=trans_fn,
batch_size=args.batch_size,
mode='test',
use_gpu=args.use_gpu,
batchify_fn=batchify_fn)
optimizer = paddle.optimizer.Adam( optimizer = paddle.optimizer.Adam(
parameters=model.parameters(), learning_rate=args.lr) parameters=model.parameters(), learning_rate=args.lr)
......
...@@ -149,6 +149,7 @@ def convert_example(example, vocab, unk_token_id=1, is_test=False): ...@@ -149,6 +149,7 @@ def convert_example(example, vocab, unk_token_id=1, is_test=False):
token_id = vocab.get(token, unk_token_id) token_id = vocab.get(token, unk_token_id)
input_ids.append(token_id) input_ids.append(token_id)
valid_length = len(input_ids) valid_length = len(input_ids)
valid_length = np.array(valid_length, dtype="int64")
if not is_test: if not is_test:
label = np.array(example[-1], dtype="int64") label = np.array(example[-1], dtype="int64")
......
...@@ -51,7 +51,7 @@ class SimNet(nn.Layer): ...@@ -51,7 +51,7 @@ class SimNet(nn.Layer):
padding_idx=pad_token_id) padding_idx=pad_token_id)
else: else:
raise ValueError( raise ValueError(
"Unknown network: %s, it must be one of bow, lstm, bilstm, gru, bigru, rnn, birnn, bilstm_attn and textcnn." "Unknown network: %s, it must be one of bow, cnn, lstm or gru."
% network) % network)
def forward(self, query, title, query_seq_len=None, title_seq_len=None): def forward(self, query, title, query_seq_len=None, title_seq_len=None):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册