@@ -58,7 +58,7 @@ class Evaluator: | |||||
是否在 evaluate 的时候将 model 的状态设置成 eval 状态。在 eval 状态下,model 的 | 是否在 evaluate 的时候将 model 的状态设置成 eval 状态。在 eval 状态下,model 的 | ||||
dropout 与 batch normalization 将会关闭。默认为True。如果为 False,fastNLP 不会对 model 的 evaluate 状态做任何设置。无论 | dropout 与 batch normalization 将会关闭。默认为True。如果为 False,fastNLP 不会对 model 的 evaluate 状态做任何设置。无论 | ||||
该值是什么,fastNLP 都会在 evaluate 接受后将 model 的状态设置为 train 。 | 该值是什么,fastNLP 都会在 evaluate 接受后将 model 的状态设置为 train 。 | ||||
TODO 还没完成。 | |||||
TODO 还没完成。 | |||||
* *auto_tensor_conversion_for_metric* (``Union[bool]``) -- | * *auto_tensor_conversion_for_metric* (``Union[bool]``) -- | ||||
是否自动将输出中的 tensor 适配到 metrics 支持的。例如 model 输出是 | 是否自动将输出中的 tensor 适配到 metrics 支持的。例如 model 输出是 | ||||
paddlepaddle 的 tensor ,但是想利用 torchmetrics 的metric对象,当 auto_tensor_conversion_for_metric 为True时,fastNLP 将 | paddlepaddle 的 tensor ,但是想利用 torchmetrics 的metric对象,当 auto_tensor_conversion_for_metric 为True时,fastNLP 将 | ||||
@@ -68,13 +68,13 @@ class Trainer(TrainerEventTrigger): | |||||
:param model: 训练所需要的模型,目前支持 pytorch; | :param model: 训练所需要的模型,目前支持 pytorch; | ||||
:param driver: 训练模型所使用的具体的驱动模式,应当为以下选择中的一个:["torch", "torch_ddp", ],之后我们会加入 jittor、paddle 等 | :param driver: 训练模型所使用的具体的驱动模式,应当为以下选择中的一个:["torch", "torch_ddp", ],之后我们会加入 jittor、paddle 等 | ||||
国产框架的训练模式;其中 "torch" 表示使用 cpu 或者单张 gpu 进行训练 | |||||
国产框架的训练模式;其中 "torch" 表示使用 cpu 或者单张 gpu 进行训练 | |||||
:param train_dataloader: 训练数据集,注意其必须是单独的一个数据集,不能是 List 或者 Dict; | :param train_dataloader: 训练数据集,注意其必须是单独的一个数据集,不能是 List 或者 Dict; | ||||
:param optimizers: 训练所需要的优化器;可以是单独的一个优化器实例,也可以是多个优化器组成的 List; | :param optimizers: 训练所需要的优化器;可以是单独的一个优化器实例,也可以是多个优化器组成的 List; | ||||
:param device: 该参数用来指定具体训练时使用的机器;注意当该参数为 None 时,fastNLP 不会将模型和数据进行设备之间的移动处理,但是你 | :param device: 该参数用来指定具体训练时使用的机器;注意当该参数为 None 时,fastNLP 不会将模型和数据进行设备之间的移动处理,但是你 | ||||
可以通过参数 `input_mapping` 和 `output_mapping` 来实现设备之间数据迁移的工作(通过这两个参数传入两个处理数据的函数);同时你也 | |||||
可以通过在 kwargs 添加参数 "data_device" 来让我们帮助您将数据迁移到指定的机器上(注意这种情况理应只出现在用户在 Trainer 实例化前 | |||||
自己构造 DDP 的多进程场景); | |||||
可以通过参数 `input_mapping` 和 `output_mapping` 来实现设备之间数据迁移的工作(通过这两个参数传入两个处理数据的函数);同时你也 | |||||
可以通过在 kwargs 添加参数 "data_device" 来让我们帮助您将数据迁移到指定的机器上(注意这种情况理应只出现在用户在 Trainer 实例化前 | |||||
自己构造 DDP 的多进程场景); | |||||
device 的可选输入如下所示: | device 的可选输入如下所示: | ||||
1. 可选输入:str: ['cpu', 'cuda', 'cuda:0', 'cuda:1', ...] 依次为'cpu'中, 可见的第一个GPU中, 可见的第一个GPU中, 可见的第二个GPU中; | 1. 可选输入:str: ['cpu', 'cuda', 'cuda:0', 'cuda:1', ...] 依次为'cpu'中, 可见的第一个GPU中, 可见的第一个GPU中, 可见的第二个GPU中; | ||||
2. torch.device:将模型装载到torch.device上; | 2. torch.device:将模型装载到torch.device上; | ||||
@@ -95,7 +95,7 @@ def _set_backend(): | |||||
def set_env(global_seed=None): | def set_env(global_seed=None): | ||||
""" | """ | ||||
set_env 用于显式告知 fastNLP 将要使用的相关环境变量是什么,必须在代码最开端运行。以下的环境变量设置,优先级分别为:(1)在代码开始 | set_env 用于显式告知 fastNLP 将要使用的相关环境变量是什么,必须在代码最开端运行。以下的环境变量设置,优先级分别为:(1)在代码开始 | ||||
的位置显式调用设置;(2)通过环境变量注入的;(3)通过读取配置文件(如果有)。 | |||||
的位置显式调用设置;(2)通过环境变量注入的;(3)通过读取配置文件(如果有)。 | |||||
:param backend: 目前支持的 backend 有 torch, jittor, paddle 。设置特定的 backend 后,fastNLP 将不再加载其它 backend ,可以 | :param backend: 目前支持的 backend 有 torch, jittor, paddle 。设置特定的 backend 后,fastNLP 将不再加载其它 backend ,可以 | ||||
提高加载速度。该值对应环境变量中的 FASTNLP_BACKEND 。 | 提高加载速度。该值对应环境变量中的 FASTNLP_BACKEND 。 | ||||
@@ -9,7 +9,7 @@ import datetime | |||||
def remove_local_rank_in_argv(): | def remove_local_rank_in_argv(): | ||||
""" | """ | ||||
通过 torch.distributed.launch 启动的时候,如果没有加入参数 --use_env ,pytorch 会默认通过 rank 注入 rank,这就 | 通过 torch.distributed.launch 启动的时候,如果没有加入参数 --use_env ,pytorch 会默认通过 rank 注入 rank,这就 | ||||
要求代码中必须有能够 parse rank 的parser,这里将 rank 删除掉,防止后续报错。 | |||||
要求代码中必须有能够 parse rank 的parser,这里将 rank 删除掉,防止后续报错。 | |||||
:return: | :return: | ||||
""" | """ | ||||