2个不稳定版本

0.3.0 2021年11月21日
0.2.0 2017年6月16日

#775 in 机器学习

MIT/Apache

15KB
186

Greenglas • 加入聊天 https://gitter.im/spearow/juice Greenglas 构建状态 Crates.io 依赖状态 许可

Greenglas试图为机器学习任务提供智能且可定制的预处理管道。针对最常见的数据类型的清洁预处理方法,使预处理变得简单。Greenglas提供修改器和转换器的管道,将非数值数据转换为Coaster的SharedTensor形式的安全和一致数值输出。为了使用预处理后的数据,您可能希望使用机器学习框架Leaf

更多信息请参阅文档

架构

Greenglas公开了几个标准数据类型,这些数据类型可能需要数值转换才能被机器学习算法(如神经网络)处理。

数据类型可以通过修改器进行修改。这提供了一个统一的接口,允许使用自定义修改器。您可以在下面了解更多关于自定义修改器的信息。首先是一个数据类型修改的例子

let mut data_type = Image { value: ... }
data_type = data_type.set((ModifierOne(param1, param2), ModifierTwo(anotherParam));
image.set(Resize(20, 20))

通过修改器进行一次、零次或多次修改后,数据类型最终可以转换为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();

可转换的数据类型

这些是Greenglas目前处理的数据类型。对于其中大部分已经指定了基本的修改器和转换器。

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

修饰符

所有修饰符都实现了来自 rust-modifierModifier 特性。由于所有可转换数据类型都实现了同一库中的 Set 特性,因此可以轻松编写自定义修饰符。快速示例

extern crate greenglas;

use greenglas::Image;
use greenglas::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);
    }
}

贡献

想要贡献?太棒了!我们提供了 帮助您开始贡献代码或文档的说明

开发主要在异步协作文化中进行,并在 Gitter 频道 或通过 github 问题进行。或者您联系维护者。例如,{@drahnr }。

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,如 Apache-2.0 许可证中定义的,均应按以下方式双许可,不附加任何额外条款或条件。

许可证

以下任一许可证下授权

任选。

依赖项

~15MB
~94K SLoC