6 个版本

使用旧的 Rust 2015

0.2.0 2016年4月18日
0.1.4 2015年11月10日
0.1.2 2015年10月30日

#627 in 机器学习

MIT/Apache

15KB
175

Cuticula • Join the chat at https://gitter.im/autumnai/cuticula Build Status Coverage Status License

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。

  • MissingNULL 数据
  • Label:标签数据,如 ID、类别等。
  • Word:任意长度的字符串
  • 图像
  • 音频

修饰符

所有修饰符都实现了来自 rust-modifierModifier 特性。由于所有可变换的数据类型都实现了同一库中的 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 许可证定义,将按照以下方式双许可,不附加任何额外条款或条件。

许可证

以下任一许可证下发布:

任选其一。

依赖项

~11MB
~57K SLoC