2个不稳定版本
0.3.0 | 2021年11月21日 |
---|---|
0.2.0 | 2017年6月16日 |
#775 in 机器学习
15KB
186 行
Greenglas •
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目前处理的数据类型。对于其中大部分已经指定了基本的修改器和转换器。
Missing
:NULL
数据Label
:标签化数据,如ID、类别等。Word
:任意长度的字符串。图像
音频
修饰符
所有修饰符都实现了来自 rust-modifier
的 Modifier
特性。由于所有可转换数据类型都实现了同一库中的 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 许可证中定义的,均应按以下方式双许可,不附加任何额外条款或条件。
许可证
以下任一许可证下授权
- Apache 许可证第 2 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选。
依赖项
~15MB
~94K SLoC