7个版本
0.0.8 | 2023年8月3日 |
---|---|
0.0.7 | 2022年11月18日 |
#224 in 机器学习
18KB
233 行
#描述
使用纯Rust(不想使用C++,因为C++在复杂逻辑项目中容易写出内存不安全的代码)制作的仿照PyTorch的个人玩具型AI框架(尚不成熟,请勿使用)。不打算支持GPU(因为后期可能要支持安卓等平台,不想受制于某种非CPU设备),但可能会加入NEAT等网络进化算法。
名字由来
部分原因是因为受到PyTorch的影响,希望编写一个和PyTorch一样甚至更易用的AI框架;另一部分原因是希望本框架只涉及(touch)一些关键的东西:
- only torch rust --- 只使用Rust(不使用C++是因为C++在复杂逻辑项目中容易写出内存不安全代码);也不使用第三方库(因此排除了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文档。
待办事项
(目前需要先解决有没有的问题;而不是好不好)
- [] 常用激活函数,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协议(简言之:不约束,不负责)。
依赖项
~3MB
~61K SLoC