chenshaowei57
chenshaowei57
This is a strange question that I haven't encountered. Is this problem in both datasets? Is the problem caused by the environment version?
是从第一个epoch就存在问题么?
那我再运行试试,这个问题之前还真没遇到过。
可以把main函数中的随机种子设置注释掉,应该就可以了。 `seed_num = 57 random.seed(seed_num) torch.manual_seed(seed_num) np.random.seed(seed_num)` 原因可能是我没有加参数初始化的范围约束,所以我设的种子在你们的机器上可能会使得参数初始化到一个难以优化的区间。
您好,在运行的时候是出现了损失不收敛的问题么?那测试结果有上升么?还是测试也有问题?
bert-tiny我没有尝试过,是不是tiny和base的分词和词表不一样导致的?
在我们公开的谷歌云的链接中original_data文件里有bert处理前的数据。
对于第一个问题,我们也尝试过sigmoid,但是效果不是很好,我们认为这可能是因为关系矩阵里1过于稀疏。考虑到文本中某个实体在特定的关系类别下仅会与少量的词存在关联关系,因此我们采用softmax来对于预测的稀疏性进行某种程度的约束。 对于第二个问题,我们确实没有在计算损失的时候利用all_input_mask,但是我们在计算语义的过程中将mask的词的语义置为0,因此对于性能没有明显影响。 对于第三个问题,这是我们采用的一种策略,主要为了保证计算的概率属于0-1区间,进而更合理地设置阈值。
非常感谢您的回复,我会持续关注一下~ 此外还有几个问题想要请教一下~ (1)论文中公式3计算的是不同query的权重,为什么要在sigmoid函数的基础上乘T?乘后似乎就不能保证权重属于[0,1]区间了。 在提供的代码中,计算权重时似乎更像一个softmax操作,ent_weight = (np.exp(ent_p_list) / sum(np.exp(ent_p_list))) * len(ent_p_list),我也认为softmax似乎更合理,是不是论文的公式有点问题? (2)论文公式4中a_{t,i}代表什么?根据上文描述,a_{t,i}似乎表示MRC预测的标签,如果是标签的话如何做到加权求和呢?我注意到论文中,似乎是将权重乘100,再计次,进而选择最终的标签。 `for i in mask_index: # vote on every token answer = [every_pred_label[j][i] for j in range(num_ques)] answer = []...