一个用纯Rust(不想用C++)打造的仿Pytorch的玩具型AI框架(目前尚不成熟,请勿使用)。该项目不打算支持GPU--因后期可能要支持安卓等平台,不想受制于某(几)种非CPU设备。但可能会加入NEAT等网络进化的算法。
一部分原因是受到pytorch的影响,希望能写个和pytorch一样甚至更易用的AI框架;另一部分是希望本框架只触及(touch)一些关键的东西:
- only torch Rust --- 只用Rust(不用C++是因为其在复杂逻辑项目中容易写出内存不安全代码,也不打算支持Python接口);也不用第三方lib(所以排除tch-rs),这样对跨平台支持会比较友好。
- only torch CPU --- 不用GPU,因要照顾多平台也不想被某个GPU厂商制约,且基于NEAT进化的网络结构也不太好被GPU优化(也省得考虑数据从CPU的堆栈迁移到其他设备内存的开销问题了)。
- only torch node --- 没有全连接、卷积、resnet这类先入为主的算子概念,具体模型结构均基于NEAT进化。
- only torch tensor --- 所有的数据类型都是内置类型tensor(实现可能会参考peroxide),不需要第三方处理库,如numpy,array或openBLAS(关于blas的一些说明)。
- only torch f32 --- 网络的参数(包括模型的输入、输出)不需要除了f32外的数据类型。
目前无人性化的文档。可直接看Rust自动生成的Api Doc即可。
(无)
- 等ada_line例子跑通后:
Variable
节点做常见的运算重载(如此便不需要用那些丑陋的节点算子了) parent.borrow_mut()
或.children_mut()
改变后如何保证其matrix形状是合法的该节点运算后matrix?fn as_node_enum(&self) -> NodeEnum { NodeEnum::Step(self.clone()) }
会否影响计算图graph?- Tensorlei的index将
[[
优化成[
? - Tensor类的
slice(&[0..m, j..j+1])
是否需要? children_mut
是否可合并至children()
? andvalue_mut
是否可合并至value
?fn as_node_enum(&self) -> NodeEnum
trait method 是否多余,对于具体实现的节点,可否隐式转换或直接各节点返回NodeEnum?(只要不要影响后期各种算子的重载)?
// TODO:use approx::assert_abs_diff_eq; need or not? 目前需要先解决有没有的问题,而不是好不好
- [] 实现类似tch-rs中
tch::no_grad(|| {});
的无梯度功能; - [] 常用激活函数,tanh,Softplus,sech
- [] 基于本框架解决XOR监督学习问题
- [] 基于本框架解决Mnist(数字识别)的监督学习问题
- [] 基于本框架解决CartPole(需要openAI Gym或相关crate支持)的深度强化学习问题
- [] 尝试实现下CFC
- [] 保存的json网络结构设计方案
(较为成熟的3方库)
-
用纯numpy写各类机器学习算法 (自动微分参考)
-
[]
- scryer-prolog--Rust逻辑推理库
- vampire:自动证明器
- 那迷人的被遗忘的语言:Prolog
- 结合prolog和RL
- prolog与4证人难题
- logic+mL提问- prolog解决数度问题
- 贝叶斯与逻辑推理
- 用一阶逻辑辅佐人工神经网络
- 二阶逻辑杂谈
- 关于二阶逻辑的概念问题
- 书:《The Book of Why》
- 书:《Causality:Models,Reasoning,and Inference》
- 知乎:因果推断杂谈
- 信息不完备下基于贝叶斯推断的可靠度优化方法
- 贝叶斯网络中的因果推断
- Sac用以复合Action
- EfficientZero
- SpeedyZero
- LightZero
- 随机MuZero代码
- Redeeming Intrinsic Rewards via Constrained Optimization
- Learning Reward Machines for Partially Observable Reinforcement Learning
- combo代码
- 2023最新model-based offline算法:MOREC
- 众多model-base/free的offline算法
- model-free offline算法:MCQ解析
- RL论文列表(curiosity、offline、uncertainty,safe)
- 代替Gym的综合库
- 动手学深度学习-李沐著
- openMMLab-Yolo
- GRU解释
- 基于人类语音指挥的AI
- webGPT会上网的gpt
- LeCun的自监督世界模型
- awesome Rust
- 去雾算法
- rust人工智能相关的项目
本项目遵循MIT协议(简言之:不约束,不负责)。