1 个不稳定版本
使用旧的 Rust 2015
0.0.0 | 2018年9月8日 |
---|
#19 在 #神经网络
2KB
Juice
这是以下项目的工程空间项目:
- juice - 为黑客设计的机器学习框架
- coaster - 底层的数学抽象
- coaster-nn
- coaster-blas
- greenglas - 数据预处理框架
- juice-examples - mnist 示例
有关更多信息,请参阅各个 README.md 文件。
Juice 示例
运行 juice 示例的 CLI。更多示例和基准测试可以在 juice 示例目录 中找到。
安装 CLI
免责声明:目前示例需要 CUDA 和 cuDNN 才能构建。
编译并调用构建。
# install rust, if you need to
curl -sSf https://static.rust-lang.org/rustup.sh | sh
# download the code
git clone [email protected]:spearow/juice.git && cd juice/juice-examples
# build the binary
cargo build --release
# and you should see the CLI help page
../target/release/juice-examples --help
# which means, you can run the examples from the juice-examples README
依赖项
Cap'n'Proto
capnproto 是一种数据交换格式,用于存储和加载 Juice 的带权重网络。
capnproto
和 capnproto-libs
以及它们的开发包是您包管理器中需要的。
Cuda
许多用户面临的第一道难关是获取 cuda 库。
为了使一切正常工作,需要设置以下环境变量
# examplary paths, unlikely to work for your local setup!
export CUDNN_INCLUDE_DIR=/opt/cuda/include
export CUDNN_LIB_DIR=/opt/cuda/targets/x86_64-linux/lib/
export CUBLAS_INCLUDE_DIR=/opt/cuda/include
export CUBLAS_LIB_DIR=/opt/cuda/targets/x86_64-linux/lib/
根据 您的本地 安装设置。
目前支持的 cuda 版本是 cuda-11
(详细信息请参阅 #114 和 #115)
请注意,您需要一个能够运行 cuda 后端的 nvidia 设备。
OpenCL
您需要适当的加载器和设备库。由于 OpenCL 后端仍然是 WIP,将在稍后详细介绍。
BLAS
BLAS 是 native 后端使用的线性代数。
需要 openblas
或 blas
。可以通过 BLAS_VARIANT
明确选择。
默认情况下,尝试通过 pkg-config
解决库。
通过
# examplary paths, unlikely to work for your local setup!
export BLAS_LIB_DIR=/opt/blas/lib64/
export BLAS_INCLUDE_DIR=/opt/blas/include/
也可以支持。
通过将 BLAS_STATIC
设置为 1
或取消设置 BLAS_STATIC
来确定 BLAS 库变体的链接方式。
ArchLinux 用户
ArchLinux 的 openblas
软件包不包括 LAPACK 符号(参见 FS#66092),因此如果您尝试使用它,您将会遇到多个未解决的 cblas_*
符号。
将 openblas
替换为 AUR 的 openblas-lapack
软件包以修复。