2 个版本
0.0.2 | 2019 年 11 月 6 日 |
---|---|
0.0.1 | 2019 年 7 月 19 日 |
#6 in #idx
12KB
185 行
idx-decoder
关于
IDX 文件格式解码库。 (目前正在进行中)
主要类型是 IDXDecoder
。它实现了 Iterator,其 Item 对应于文件格式的项。
类型参数
IDXDecoder
使用三个类型参数。
-
R
: 读取器,用于获取数据。可以是文件、网络流等。 -
T
: Iterator 产生的项的类型。例如 U8、I16、F32。所有可能的类型都可以在
types
模块中找到。 -
D
: 维度的类型级整数。必须小于 256。如果小于 128,则使用 nalgebra 的 U* 类型。对于值 >= 128,则使用 typenum 的常量。
维度
对于一维解码器,返回项本身。
对于更多维度,输出是一个包含单个项的值的 Vec
。
例如,一个大小为 4x4 的 3 维解码器将返回长度为 16 的 Vec
。
解码器的第一个维度对应于剩余项的数量。
注意事项
当前解码器仅实现了 1 和 3 维的 Iterator。这是因为我没有实现其他。
Crate 也假定项以大端方式存储,就像大小一样。
如果您发现了错误或 crate 缺少一些功能,请添加问题或发送拉取请求。
示例
let file = std::fs::File::open("data.idx")?;
let decode = idx_decoder::IDXDecoder::<_, idx_decoder::types::U8, nalgebra::U1>::new(file)?;
for item in decode {
println!("Item: {}", item);
}
致谢
此 crate 是根据在 http://yann.lecun.com/exdb/mnist/ 找到的文件格式实现的
许可证: MIT
依赖项
~4.5MB
~91K SLoC