GCH

Results 11 comments of GCH

> 你好! > > 1. 是这样的, `在 max_ins_id = torch.max(out[:, label], 0)[1]` out 表示这个bag内,每个句子的所有关系的概率值。 > 2. label 就是训练的标签。 比如label是3的话, 就在out中取出第三列,然后找到bag内所有句子在这一列上的最大的那个句子。 您好,请问这一步是在包中选择在包的标签上获得最大得分的instance,这样可以获取到每个包中一个instance,使用这些筛选得到的instance进行分类器的训练,是这样吗?

> 吃的显存应该和训练数据中的最长句子的长度相关,对10g显存来说,一般支持长度200的句子 > > 这么吃显存吗? 8万条训练数据16g就跑不动了 > > 是的,max_len=100, batch_size=32; 大约占9G, 6层6 * 100 dim的Transformer和BERT一样大:) 请问您如何在源码中设置batch_size,为什么无论我怎样缩减batch_size,都是爆显存

> > > 吃的显存应该和训练数据中的最长句子的长度相关,对10g显存来说,一般支持长度200的句子 > > > > > > > > 这么吃显存吗? 8万条训练数据16g就跑不动了 > > > > > > > > > 是的,max_len=100, batch_size=32; 大约占9G, 6层6 * 100 dim的Transformer和BERT一样大:)...

> > > 吃的显存应该和训练数据中的最长句子的长度相关,对10g显存来说,一般支持长度200的句子 > > > > > > > > 这么吃显存吗? 8万条训练数据16g就跑不动了 > > > > > > > > > 是的,max_len=100, batch_size=32; 大约占9G, 6层6 * 100 dim的Transformer和BERT一样大:)...

> > 可以在trainer.train()后面加上对于model的保存操作 > > 加上了,但是加载的时候出错了,可以请教一下你么 请问您解决这个问题了吗

在trainer.train()后保存trainer.model, 可以使用FastNLP的Tester进行测试,数据处理需要与原来的训练数据处理一致

> 那两个函数看起来2-gram变成1-gram,3-gram变成2-gram了。是不是应该把t也考虑进去? 请问您有已经测试过了吗,为什么我将t加上之后,测试集的正确率下降了2%

> > > 就是用几个质数做的简单的哈希函数,这些数都是可以改的,你也可以自己定义一个哈希函数,目的就是把所有n-gram都映射到一个词表中。 (每个n-gram会得到一个数值,该数值对词表大小取模,得到它在词表中的位置) > > > 词表大小也是自己定的,理论上词表越大,效果越好;词表越小,不同的n-gram就越有可能映射到词表的同一个位置。 但是这里要考虑到内存、耗时的问题(性价比),还有就是有的n-gram组合可能永远不会出现,所以词表也不是越大越好的。 > > > > > > 正常的逻辑不应该是构造一个2-gram和3-gram字典,然后根据这个字典对句子进行idx转换吗?不理解使用哈希的目的。个人觉得没有体现出gram思想中的上下文顺序,因为只要字相同,其n-gram就一样,实际的情况是字一样,上下文也不一定一样。 > > 我也感觉应该把t也加上,否则的话2-gram无法体现上下字的联系,3-gram在此变成了2-gram 我觉得在模型输入的时候,将unigram,bigram和trigram embedding之后张量拼接就已经可以保证语序信息的输入了,因为n-gram词表大小是固定的,例如‘我是’和‘我像’,‘像’和‘是’的bigram映射到词表的同一位置,是不是可以保证相似特征的提取呢?而将t加入后这两个词映射之后就完全不同了,与普通的词袋模型似乎没有区别? (仅代表个人想法,希望大佬指正)