3 个版本 (破坏性更新)
0.3.0 | 2022年10月1日 |
---|---|
0.2.0 | 2022年1月16日 |
0.1.0 | 2022年1月13日 |
#710 在 编程语言 中
105KB
2.5K SLoC
拥抱其运行硬件的人工智能。
与依赖巨大矩阵乘法和非线性激活函数的人工智能代理不同,AIVM
使用具有可训练代码的虚拟机来直接驱动其决策。代码可以编译成本地机器代码,从典型人工智能代理中移除了一个昂贵的抽象层。
快速入门
use aivm::{codegen, Compiler, Runner};
const LOWEST_FUNCTION_LEVEL: u32 = 1;
const MEMORY_SIZE: u32 = 4;
const INPUT_SIZE: u32 = 4;
const OUTPUT_SIZE: u32 = 4;
let gen = codegen::Interpreter::new();
let mut compiler = Compiler::new(gen);
// TODO: train code and memory to make it do something useful.
let code = [0; 16];
let mut runner = compiler.compile(
&code,
LOWEST_FUNCTION_LEVEL,
MEMORY_SIZE,
INPUT_SIZE,
OUTPUT_SIZE,
);
let mut memory = [0; (MEMORY_SIZE + INPUT_SIZE + OUTPUT_SIZE) as usize];
runner.step(&mut memory);
依赖项
~0–1.6MB
~33K SLoC