我有一个包含大约 5000 行和 3757 列的 .csv 文件。每行的前 3751 列是特征,后 6 列是标签。每行都是一组特征-标签对。
我想知道是否有内置函数或任何我可以使用的快速方法:
- 将前 3751 列解析为特征(这些列没有标题)
- 将最后 6 列中的任意列作为标签进行解析,这意味着我想将最后 6 列中的任意列作为训练标签。
基本上我想训练一个具有 3751 个特征和 1 个标签的 DNN 模型,我希望将解析函数的输出输入到以下函数中进行训练:
train_input_fn = tf.estimator.inputs.numpy_input_fn(
x={"x": np.array(training_set.data)},
y=np.array(training_set.target),
num_epochs=None,
shuffle=True)
我知道像“tf.contrib.learn.datasets.base.load_csv_without_header”这样的函数可以做类似的事情,但它已经被弃用了。
请您参考如下方法:
您可以查看 tf.data.Dataset 的输入管道 (LINK)。你基本上做的是你可以读取一个 csv 文件,可能以某种方式对其进行批处理/随机播放/映射,并在数据集上创建一个迭代器。每当您评估 iterator.get_next() 时,您都会从 csv 中获得与批量大小相等的行数。关于特征和标签的分离,您可以使用标准 python 语法简单地访问批处理的单个元素,例如features = batch[:-6] 和 label = batch[-1] 并将它们提供给您喜欢的任何函数。
在 tensorflow 网站上,有一个关于如何使用这些输入管道的深入教程 (LINK)。
