新建 Microsoft PowerPoint 演示文稿 (2).jpg
我又回来了,Pytorch的学习也是为了熟悉AllenNLP结构,所以,在完成基础tutorial之后又折回来继续学AllenNLP。四月份的目标是复现那篇论文中的结构并使用Finetuning完成Transformer。
今天开始AllenNLP入门的第二部分How-to。总共包括七个小节。
2. 使用Lazy Data训练模型
这里的Lazy Data是相对于实例数据而言,实例数据有时会太大,有时用户只是想每次迭代中使用样例,优势是想立即训练,或是其他原因,这里就可以使用懒数据。
这个教程是用来告诉你,它们(使用懒数据训练模型)都包括了什么。如果需要更加具体的内容,需要看这个Laziness in AllenNLP。我在最后会把这个教程重新拿出来拆分一下看看。
1.1 在 YourDatasetReader 构造函数
YourDatasetReader子类的构造函数中有lazy参数和from_params方法。然后通过数值传入superclass constructor
注意,这里的代码片段是不能直接运行的,仅仅作为解释
def __init__(self,
tokenizer: Tokenizer = None,
token_indexers: Dict[str, TokenIndexer] = None,
lazy: bool = False) -> None:
super().__init__(lazy)
1.2 在 YourDatasetReader._read()
YourDatasetReader._read()返回的应该是一个generator类型自然语言模型,而不是list
注意自然语言模型,这里的代码片段是不能直接运行的,仅仅作为解释
def _read(self, file_path: str) -> Iterable[Instance]:
# logic to iterate over file
# some kind of for loop
# instance = ...
yield instance
1.3 在dataset_reader一节中,用户实验配置
用户应该在实验配置的dataset_reader部分中指定'lazy':true。
注意,这里的代码片段是不能直接运行的,仅仅作为解释
"dataset_reader": {
"type": "snli",
"lazy": true,
"token_indexers": {
"tokens": {
"type": "single_id",
"lowercase_tokens": true
}
}
},
1.4 在iterator 一节中的实验配置
用户应该在实验配置的迭代器部分中尽可能大地指定“max_instances_in_memory”。 (您不必这样做,但这是一个好主意,特别是如果您想使用BucketIterator。)
def __init__(self,
batch_size: int = 32,
instances_per_epoch: int = None,
max_instances_in_memory: int = None) -> None:
self._batch_size = batch_size
self._instances_per_epoch = instances_per_epoch
self._max_instances_in_memory = max_instances_in_memory
Laziness这部分没有找到源码,在想是不是要自己撸一遍看看。
———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99
2.本站所有项目来源于投稿或购买自其他第三方,若本站侵犯了您的权益请 联系站长 进行删除处理。