#machine-learning #ai #neat #logic #torch #tensor

only_torch

仿造pytorch的个人玩具(仍在构思,请勿下载)AI框架

7 releases

0.0.8 Aug 3, 2023
0.0.7 Nov 18, 2022

#175 in Machine learning

MIT license

18KB
233 lines

#描述

用纯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),不需要第三方处理库,如numpyarrayopenBLAS关于blas的一些说明)。
  • only torch f32 --- 网络的参数(包括模型的输入、输出)不需要除了f32外的数据结构。

使用示例

(无)

文档

目前无人性化的文档。可直接看rust自动生成的Api Doc即可。

TODO

(目前需要先解决有没有的问题;而不是好不好)

  • [] 常用激活函数,tanh,Softplus,sech
  • [] 基于本框架解决XOR监督学习问题
  • [] 基于本框架解决Mnist(数字识别)的监督学习问题
  • [] 基于本框架解决CartPole(需要openAI Gym)的深度强化学习问题
  • [] 尝试实现下CFC
  • [] 保存的json网络结构设计方案

参考资料

训练用数据集

Mnist FashionMnist ChineseMnist

IT原理

开源示例

NEAT、神经架构进化

逻辑/推理

神经网络的可解释性

CPU加速

AI实例项目

遵循协议

本项目遵循MIT协议(简言之:不约束,不负责)。

Dependencies

~3MB
~62K SLoC