You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pytorch中如何基于训练集前1000个实例创建TabularDataset

训练集前1000实例创建TabularDataset的实现方案

完全可以实现该需求,不需要额外修改原有数据存储结构,有两种适配你现有代码逻辑的落地方式,同时可以先修正你当前代码里的基础语法问题。

现有代码的基础问题修正

你编写的TabularDataset.splits调用存在重复关键字参数的语法问题:方法调用里连续写了两次path参数、两次train文件路径,这种写法在Python中会直接触发重复关键字参数的运行报错,根本无法正常执行,调整前需要先把重复参数梳理通顺。

两种可行的子集创建方式

方式一:截取训练文件生成临时子集文件后加载

这种方式改动最小,完全兼容你原本的TabularDataset使用逻辑,适合对TorchText加载流程做最小修改的场景:

  • 操作步骤:
    • 读取原全量训练CSV文件,跳过表头后截取前1000条样本,写入一个独立的临时子集CSV文件
    • 调用TabularDataset.splits时,将训练集路径替换为这个临时子集文件路径即可
  • 参考代码:
import pandas as pd
# 读取全量训练数据并截取前1000条
full_train_df = pd.read_csv("/content/drive/MyDrive/axcs_train.csv")
train_subset_df = full_train_df.iloc[:1000, :]
# 保存为临时子集文件
train_subset_df.to_csv("/content/drive/MyDrive/axcs_train_1000subset.csv", index=False)
# 修正参数后的TabularDataset加载逻辑
train_data, test_data = TabularDataset.splits(
    path='/content/drive/MyDrive',
    train='axcs_train_1000subset.csv',
    test='axcs_test.csv',
    format='csv',
    skip_header=True,
    fields=tv_datafields
)

方式二:加载全量数据集后内存切片取前1000样本

这种方式不需要生成额外的临时存储文件,完全在内存中完成子集构建:

  • 操作步骤:
    • 先按正常逻辑加载全量的训练、测试TabularDataset实例
    • 利用TorchText Dataset类原生支持下标切片的特性,直接截取训练集的前1000个样本作为最终训练数据集
  • 参考代码:
# 加载全量训练、测试TabularDataset(已修正重复参数)
full_train_data, test_data = TabularDataset.splits(
    path='/content/drive/MyDrive',
    train='axcs_train.csv',
    test='axcs_test.csv',
    format='csv',
    skip_header=True,
    fields=tv_datafields
)
# 直接在内存中切片获取前1000个训练样本
train_data = full_train_data[:1000]
  • 特性说明:切片生成的子集与原全量数据集共享样本内存,不会产生多余的存储开销,可以直接传入后续的迭代器构建、RNN模型训练流程正常使用。

内容的提问来源于stack exchange,提问作者A_John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 08:36:04