#数据 #机器学习 #命令行工具 #CLI

bin+lib ttv

从文本文件创建训练、测试和验证集

1 个不稳定版本

0.4.0 2020年5月12日

#425 in #机器学习

MIT/Apache

42KB
1K SLoC

Rust 888 SLoC // 0.0% comments Shell 134 SLoC // 0.2% comments

Dependabot Status

ttv - 创建训练、测试和验证集

ttv 是一个命令行工具,用于将大文件分割成适合机器学习训练/测试/验证拆分的块。它起源于需要分割内存无法容纳的文件,并且希望以干净的方式进行。

ttv 需要 Rust 2018。

安装

使用 cargo build --release 命令构建,以在 ./target/release/ttv 获取二进制文件。将其复制到您的路径中即可使用。

用法

运行 ttv --help 获取帮助,或者从以下示例中推断您能做的事情

# Split CSV file into two sets of a fixed number of rows
$ ttv split data.csv --rows=train=9000 --rows=test=1000 --uncompressed-input

# Accepts gzipped data (no flag required). Shorthand argument version. As many splits as you like!
$ ttv split data.csv.gz --rows=train=65000,validation=15000,test=15000

# Alternatively, specify proportion-based splits. -u is shorthand for --uncompressed-input
$ ttv split data.csv --props=train=0.8,test=0.2 -u

# When using proportions, include the total rows to get a progress bar
$ ttv split data.csv --props=train=0.8,test=0.2 --total-rows=1234 -u

# Accepts data from stdin, compressed or not (must give a filename)
$ cat data.csv | ttv split --rows=test=10000,train=90000 --output-prefix data -u
$ cat data.csv.gz | ttv split --rows=test=10000,train=90000 --output-prefix data

# Using pigz for faster decompression
$ pigz -dc data.csv.gz | ttv split --prop=test=0.1,train=0.9 --chunk-size 5000 --output-prefix data -u

# Split outputs into chunks for faster writing/reading later
$ ttv split data.csv.gz --rows=test=100000,train=900000 --chunk-size 5000

# Write outputs uncompressed
$ ttv split data.csv.gz --prop=test=0.5,train=0.5 --uncompressed-output

# Reproducible splits using seed
$ ttv split data.csv.gz --prop=test=0.5,train=0.5 --chunk-size 1000 --seed 5330

开发

您需要一个最新的 Rust 夜间工具链和 Cargo。然后像往常一样进行修改。

依赖项

~11–21MB
~287K SLoC