#neural-network #computation #hpc #plugin #back-end #coaster

coaster-nn

提供神经网络操作的coaster插件

3个不稳定版本

0.5.0 2021年11月21日
0.4.2 2020年6月11日
0.4.1 2017年6月12日

#1831算法


用于 juice

MIT/Apache

205KB
4.5K SLoC

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

coaster-NN为coaster提供神经网络相关算法。在服务器、桌面或移动设备上运行NN操作,GPU、FPGA或CPU,无需关心机器上的OpenCL或CUDA支持。

它支持Juice

更多信息,

  • 请参阅coaster-NN的文档
  • 访问coaster以获取有关便携式操作和其他插件的更多信息。
  • 或在Gitter上联系

提供的操作

此插件向coaster后端提供以下操作。每个操作都包括正向和反向。一个-表示尚未实现。更多信息可以在文档中找到。

操作 CUDA OpenCL 本地
Sigmoid cuDNN v5或更高版本 - Rust
SigmoidPointwise cuDNN v5或更高版本 - Rust
ReLU cuDNN v5或更高版本 - Rust
ReLUPointwise cuDNN v5或更高版本 - Rust
Tanh cuDNN v5或更高版本 - Rust
TanhPointwise cuDNN v5或更高版本 - Rust
归一化(LRN) cuDNN v5或更高版本 - -
卷积 cuDNN v5或更高版本 - Rust(正向)
Softmax cuDNN v5或更高版本 - Rust
LogSoftmax cuDNN v5或更高版本 - Rust
最大池化 cuDNN v5或更高版本 - Rust(正向)
平均池化 cuDNN v5或更高版本 - -

感谢ehiggs实现初始的本地Rust操作。

入门

如果您使用Cargo,只需将coaster-NN添加到您的Cargo.toml中

[dependencies]
coaster = "0.2"
coaster-nn = "0.4"

如果您使用Cargo Edit,您可以调用

$ cargo add coaster-nn

用法

将插件特性和其他重要的coaster特性和结构体纳入作用域,您将能够对您的coaster后端执行此处提供的操作。

extern crate coaster as co;
extern crate coaster_nn as nn;
use co::prelude::*;
use nn::*;
fn main() {
    // Initialize a CUDA Backend.
    let backend = Backend::<Cuda>::default().unwrap();
    // Initialize two SharedTensors.
    // Usually you would want also fill them with data.
    // More infos about that in the coaster README.md
    let mut x = SharedTensor::<f32>::new(backend.device(), &(1, 1, 3)).unwrap();
    let mut result = SharedTensor::<f32>::new(backend.device(), &(1, 1, 3)).unwrap();
    // Use the operation provided by this Plugin.
    backend.sigmoid(&mut x, &mut result);
}

贡献

想要贡献?太棒了!我们有帮助您开始贡献代码或文档的说明。还有我们可能需要您帮助的高优先级问题。

我们有一个主要是实时协作的文化,这里在GitHub和Gitter频道上发生。您也可以联系维护者({drahnr})。

除非您明确表示,否则任何有意提交以供您在Apache-2.0许可中定义的工作中包含的贡献,均应如下双许可,而不附加任何其他条款或条件。

变更日志

变更日志是记录对项目所做的所有更改的日志或记录,如网站或软件项目,通常包括错误修复、新功能等记录。 - 维基百科

您可以在CHANGELOG文件中找到发布历史。

我们使用Clog,Rust自动生成CHANGELOG文件的工具。

许可

许可方式为以下之一

任选其一。

依赖关系

~1.2–2.3MB
~50K SLoC