6 个版本
使用旧的 Rust 2015
0.2.0 | 2016年4月18日 |
---|---|
0.1.4 | 2015年11月10日 |
0.1.2 | 2015年10月30日 |
#627 in 机器学习
15KB
175 行
Cuticula •

Cuticula 尝试为机器学习任务的数据预处理提供智能且可定制的管道。针对最常见类型的数据的干净预处理方法,使预处理变得简单。Cuticula 提供了一个 Modifiers 和 Transformers 的管道,将非数值数据转换为 Collenchyma 的 SharedTensor
形式的安全且一致的数值输出。为了使用预处理后的数据,您可能会喜欢使用机器学习框架 Leaf
。
有关更多信息,请参阅 文档。
架构
Cuticula 暴露了几个标准数据类型,这些数据类型可能需要数值转换才能被机器学习算法(如神经网络)处理。
数据类型可以通过 Modifiers 进行修改。这提供了一个一致的接口,允许自定义修饰符。您可以在下面了解更多关于自定义修饰符的信息。首先,一个数据类型修改的例子
let mut data_type = Image { value: ... }
data_type = data_type.set((ModifierOne(param1, param2), ModifierTwo(anotherParam));
image.set(Resize(20, 20))
经过一次、多次或多次通过 Modifiers 的修改后,数据类型最终可以转换为 SharedTensor
(数值向量)。以下示例中的 data_type
// the Vector secures the correct shape and capacity of the final SharedTensor
let final_tensor = data_type.transform(vec![20, 20, 3]).unwrap();
可转换数据类型
这是当前 cuticula
处理的数据类型。其中大部分已经指定了基本的 Modifiers 和 Transformers。
Missing
:NULL
数据Label
:标签数据,如 ID、类别等。Word
:任意长度的字符串图像
音频
修饰符
所有修饰符都实现了来自 rust-modifier
的 Modifier
特性。由于所有可变换的数据类型都实现了同一库中的 Set
特性,因此可以轻松编写自定义修饰符。快速示例
extern crate cuticula;
use cuticula::Image;
use cuticula::modifier::Modifier;
struct CustomModifier(usize)
impl Modifier<Image> for CustomModifier {
fn modify(self, image: &mut Image) {
image.value = some_extern_image_manipulation_fn(self.0);
}
}
贡献
想贡献吗?太棒了!我们提供了 指南,帮助您开始贡献代码或文档。
Autumn 有一个主要是实时协作的文化,在 Autumn Gitter 频道 上进行。或者您可以联系维护者。例如,{@MJ,@hobofan}。
除非您明确表示,否则您提交的任何贡献,根据 Apache-2.0 许可证定义,将按照以下方式双许可,不附加任何额外条款或条件。
许可证
以下任一许可证下发布:
- Apache 许可证 2.0 版本,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖项
~11MB
~57K SLoC