Browse Source

update documents

tags/v0.5.0
Yige Xu 5 years ago
parent
commit
ddaf6ed9fa
2 changed files with 18 additions and 18 deletions
  1. +2
    -2
      docs/source/conf.py
  2. +16
    -16
      docs/source/tutorials/tutorial_10_callback.rst

+ 2
- 2
docs/source/conf.py View File

@@ -24,9 +24,9 @@ copyright = '2018, xpqiu'
author = 'xpqiu' author = 'xpqiu'


# The short X.Y version # The short X.Y version
version = '0.4.5'
version = '0.5.0'
# The full version, including alpha/beta/rc tags # The full version, including alpha/beta/rc tags
release = '0.4.5'
release = '0.5.0'


# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------




+ 16
- 16
docs/source/tutorials/tutorial_10_callback.rst View File

@@ -2,18 +2,18 @@
使用 Callback 自定义你的训练过程 使用 Callback 自定义你的训练过程
=================================================== ===================================================


- 什么是 Callback
- 使用 Callback
- 一些常用的 Callback
- 自定义实现 Callback
- `什么是Callback`_
- `使用 Callback`_
- `fastNLP 中的 Callback`_
- `自定义 Callback`_




什么是Callback 什么是Callback
--------------------- ---------------------


Callback 是与 Trainer 紧密结合的模块,利用 Callback 可以在 Trainer 训练时,加入自定义的操作,比如梯度裁剪,学习率调节,测试模型的性能等。定义的 Callback 会在训练的特定阶段被调用。
:class:`~fastNLP.core.callback.Callback` 是与 :class:`~fastNLP.core.trainer.Trainer` 紧密结合的模块,利用 Callback 可以在 :class:`~fastNLP.core.trainer.Trainer` 训练时,加入自定义的操作,比如梯度裁剪,学习率调节,测试模型的性能等。定义的 Callback 会在训练的特定阶段被调用。


fastNLP 中提供了很多常用的 Callback ,开箱即用。
fastNLP 中提供了很多常用的 :class:`~fastNLP.core.callback.Callback` ,开箱即用。




使用 Callback 使用 Callback
@@ -35,11 +35,11 @@ fastNLP 中提供了很多常用的 Callback ,开箱即用。
data = pipe().process_from_file() data = pipe().process_from_file()
print(data) print(data)
data.rename_field('chars', 'words') data.rename_field('chars', 'words')
train_data = data.datasets['train']
dev_data = data.datasets['dev']
test_data = data.datasets['test']
vocab = data.vocabs['words']
tgt_vocab = data.vocabs['target']
train_data = data.get_dataset('train')
dev_data = data.get_dataset('dev')
test_data = data.get_dataset('test')
vocab = data.get_vocab('words')
tgt_vocab = data.get_vocab('target')
return train_data, dev_data, test_data, vocab, tgt_vocab return train_data, dev_data, test_data, vocab, tgt_vocab


# prepare model # prepare model
@@ -72,7 +72,7 @@ fastNLP 中提供了很多常用的 Callback ,开箱即用。
fastNLP 中的 Callback fastNLP 中的 Callback
--------------------- ---------------------


fastNLP 中提供了很多常用的 Callback,如梯度裁剪,训练时早停和测试验证集,fitlog 等等。具体 Callback 请参考 fastNLP.core.callbacks
fastNLP 中提供了很多常用的 Callback,如梯度裁剪,训练时早停和测试验证集,fitlog 等等。具体 Callback 请参考 :mod:`fastNLP.core.callback`


.. code-block:: python .. code-block:: python


@@ -92,18 +92,18 @@ fastNLP 中提供了很多常用的 Callback,如梯度裁剪,训练时早停


1. 创建 Callback 1. 创建 Callback
要自定义 Callback,我们要实现一个类,继承 fastNLP.Callback。这里我们定义 MyCallBack ,继承 fastNLP.Callback 。
要自定义 Callback,我们要实现一个类,继承 :class:`~fastNLP.core.callback.Callback` 。这里我们定义 ``MyCallBack`` ,继承 fastNLP.Callback 。


2. 指定 Callback 调用的阶段 2. 指定 Callback 调用的阶段
Callback 中所有以 `on_` 开头的类方法会在 Trainer 的训练中在特定阶段调用。 如 on_train_begin() 会在训练开始时被调用,on_epoch_end() Callback 中所有以 `on_` 开头的类方法会在 Trainer 的训练中在特定阶段调用。 如 on_train_begin() 会在训练开始时被调用,on_epoch_end()
会在每个 epoch 结束时调用。 具体有哪些类方法,参见 Callback 文档。这里, MyCallBack 在求得loss时调用 on_backward_begin() 记录
会在每个 epoch 结束时调用。 具体有哪些类方法,参见 :class:`~fastNLP.core.callback.Callback` 文档。这里, MyCallBack 在求得loss时调用 on_backward_begin() 记录
当前 loss,在每一个 epoch 结束时调用 on_epoch_end() ,求当前 epoch 平均loss并输出。 当前 loss,在每一个 epoch 结束时调用 on_epoch_end() ,求当前 epoch 平均loss并输出。


3. 使用 Callback 的属性访问 Trainer 的内部信息 3. 使用 Callback 的属性访问 Trainer 的内部信息
为了方便使用,可以使用 Callback 的属性,访问 Trainer 中的对应信息,如 optimizer, epoch, n_epochs,分别对应训练时的优化器,
当前 epoch 数,和总 epoch 数。 具体可访问的属性,参见文档 Callback 。这里, MyCallBack 为了求平均 loss ,需要知道当前 epoch 的总步
为了方便使用,可以使用 :class:`~fastNLP.core.callback.Callback` 的属性,访问 :class:`~fastNLP.core.trainer.Trainer` 中的对应信息,如 optimizer, epoch, n_epochs,分别对应训练时的优化器,
当前 epoch 数,和总 epoch 数。 具体可访问的属性,参见 :class:`~fastNLP.core.callback.Callback` 。这里, MyCallBack 为了求平均 loss ,需要知道当前 epoch 的总步
数,可以通过 self.step 属性得到当前训练了多少步。 数,可以通过 self.step 属性得到当前训练了多少步。


.. code-block:: python .. code-block:: python


Loading…
Cancel
Save