#描述
用纯rust(不想用c++)打造的仿造pytorch的个人玩具型AI框架(尚不成熟,请勿使用)。不打算支持gpu(因后期可能要支持安卓等平台,不想受制于某种非cpu设备),但可能会加入NEAT等网络进化的算法。
名字由来
一部分原因是受到pytorch的影响,希望能写个和pytorch一样甚至更易用的AI框架;另一部分是希望本框架只触及(touch)一些关键的东西:
- only torch rust --- 只用rust(不用c++是因为其在复杂逻辑项目中容易写出内存不安全代码);也不用第三方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即可。
TODO
(目前需要先解决有没有的问题;而不是好不好)
- [] 常用激活函数,tanh,Softplus,sech
- [] 基于本框架解决XOR监督学习问题
- [] 基于本框架解决Mnist(数字识别)的监督学习问题
- [] 基于本框架解决CartPole(需要openAI Gym)的深度强化学习问题
- [] 尝试实现下CFC
- [] 保存的json网络结构设计方案
参考资料
训练用数据集
Mnist FashionMnist ChineseMnist
IT原理
开源示例
NEAT、神经架构进化
逻辑/推理
- scryer-prolog--rust逻辑推理库
- 那迷人的被遗忘的语言:Prolog
- 结合prolog和RL
- prolog与4证人难题
- logic+mL提问- prolog解决数度问题
- 贝叶斯与逻辑推理
神经网络的可解释性
CPU加速
AI实例项目
遵循协议
本项目遵循MIT协议(简言之:不约束,不负责)。