tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[8,1] = 1000001 is not in [0,

基于TF2.0的keras BiLSTM-CRF模型报错
在加载数据进入模型训练时报如下错误
tensorflow.python.framework.errors_impl.InvalidArgumentError:

tensorflow.python.framework.errors_impl.InvalidArgumentError:  indices[8,1] = 1000001 is not in [0, 1502)
	 [[node sequential/embedding/embedding_lookup (defined at E:\competition\Specification\NerModel.py:60) ]] [Op:__inference_train_function_123177]

Errors may have originated from an input operation.
Input Source operations connected to node sequential/embedding/embedding_lookup:
 sequential/embedding/embedding_lookup/118162 (defined at D:\Anaconda3\envs\tensorflow_2.0\lib\contextlib.py:81)

Function call stack:
train_function

原因:
我的语料字典转换序号时,未知字是用的1000001数字,mapping_dict总长度为1502,而mapping_dict['unk'] = 1000001。1000001超过了其长度因此报错(原理也很奇怪,为什么值不能超过它的长度呢?欢迎留言,感谢!!!)。

解决:
完成保存语料字典时,要将转换的数字排序。即最后语料字典要进行一下操作。

 new_id = 0
    for w in list(mapping_dict):
        mapping_dict[w] = new_id
        new_id += 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值