TypeError: ‘<‘ not supported between instances of ‘Example‘ and ‘Example‘解决办法

最近在用torchtext时碰到一些问题,在博文参考这篇博文中给出了方案,但没有完全解决问题,依然报错。
在对BucketIterator.splits了解后发现其中的参数sort_with_batch要设置为True,并指定排序的key为文本长度,方便后面pytorch RNN进行pack和pad。

train_data = TabularDataset.splits(
                                    path = './',
                                    train = 'train.csv',
                                    format = 'csv',
                                    fields = fields,
                                    skip_header = False)[0] # 是否跳过文件的第一行 

# 然后再生成itrerator时需要指定sort_within_batch,sort_key两个参数
train_iterator, valid_iterator, test_iterator = BucketIterator.splits(
    (train_data, valid_data, test_data), 
    batch_size=BATCH_SIZE,
    sort_within_batch=True, # 每个batch内的数据按照sork_key降序排列,为pack_padded_sequence做准备
    sort_key = lambda x:len(x.eContent), # 注意 lambda 的参数 x 是train_data的 Example 对象
    device=device)

参考资料:
1)TypeError: ‘<‘ not supported between instances of ‘Example‘ and ‘Example‘解决办法
2)torchtext预处理数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值