bug清单问题

1. embedding 层 index out of range in self
原因: 一般是因为模型的vocab_size与提供的vocab.txt文件的词大小不一致。
检查方法: 
可通过以下方法,查看tensor的最大最小值
        # print('token_ids', token_ids.max(), token_ids.min())  # (已转变为张量后)
        # print('attention_masks', attention_masks.max(), attention_masks.min())  # (已转变为张量后)
        # print('token_type_ids', token_type_ids.max(), token_type_ids.min())  # (已转变为张量后)
        # print('labels', labels.max(), labels.min())  # (已转变为张量后)
2 Dataloader
File "D:\python\lib\site-packages\torch\utils\data\_utils\collate.py", line 55, in default_collate
    return torch.stack(batch, 0, out=out)
RuntimeError: stack expects each tensor to be equal size, but got [2] at entry 0 and [1] at entry 1

原因是text 在tokenizer.encod()之后没有用max_length限制长度。但是input_ids的长短不一样。

class MyDataset(Dataset):
    def __init__(self, texts, tokenizer, max_length):
        self.texts = texts
        self.tokenizer = tokenizer
        self.max_length = max_length

    def __len__(self):
        return len(self.texts)

    def __getitem__(self, index):  # 这里没有max_length限制
        text = self.texts[index]
        input_ids = self.tokenizer.encode(text)
        input_ids = input_ids[:self.max_length]# 此处需要基于max_length进行强制截取
3. ImportError: /usr/lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block
export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1:$LD_PRELOAD
上一篇:根据状态转移图实现时序电路 (三段式状态机)-代码


下一篇:【前端】XML和HTML的区别详解