【Bug记录】pytorch实现中文事件抽取

项目场景:

一个简单的用pytorch实现中文事件抽取的代码。
项目地址:https://github.com/Jianwei-Lv/chinese-event-extraction-pytorch


问题描述

RuntimeError: CUDA error: invalid device ordinal
这个问题主要是由于GPU编号不一致或GPU版本问题。
因此,在本项目的config中找到定义device 的地方,本项目如下:

self.device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')   # 设备
        #设备这里原来为cuda:2,改为0之后不再报错

    test_data = train_data[100:]#原1000
    train_data = train_data[0:100]

ZeroDivisionError: integer division or modulo by zero
这里是因为楼主的test_data数量太少:原项目的test_data为训练集的第1000条之后的数据,本项目的数据集不够1000条导致test_data数据为0

class DatasetIterater(object):
    def __init__(self, batches, batch_size, device):
        self.batch_size = batch_size
        self.batches = batches
        self.n_batches = len(batches) // batch_size
        self.residue = False  # 记录batch数量是否为整数
        if len(batches) % self.n_batches != 0:
            self.residue = True
        self.index = 0
        self.device = device
train_data = build_dataset(config)

    test_data = train_data[100:]#原1000
    train_data = train_data[0:100]

json.decoder.JSONDecodeError: Expecting value: line 490 column 1
大概率是json.load() 载入json文件时出现了错误,问题一般是由于json文件损坏或内容缺失.楼主这里是因为训练集数量太少,扩充了一下数据集就好了。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值