展示 HN:Autograd.c – 一个从头开始构建的微型机器学习框架
Show HN: Autograd.c – a tiny ML framework built from scratch

原始链接: https://github.com/sueszli/autograd.c

这展示了一个用C编写的、最小化的反向模式自动微分(autograd)引擎。它利用引用计数张量和竞技场分配用于函数节点,专注于高效的内存管理。该引擎具有显式的依赖跟踪和集中式梯度累积,以优化反向传播,专门设计用于标量损失函数。 实现了一组核心张量运算,并紧密集成了前向和反向传递。该系统使用CIFAR-10数据集进行了测试,下载了40%的子集。初步训练结果显示,平均训练损失为2.2632,准确率为20.48%,测试准确率为23.56%。在第2轮训练期间的损失曲线可视化显示波动,范围从最大值2.3112到最小值2.2899。训练设置为运行15轮。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Show HN: Autograd.c – 一个从头开始构建的微型机器学习框架 (github.com/sueszli) 6 分,由 sueszli 1小时前发布 | 隐藏 | 过去 | 收藏 | 讨论 在学习 Vijay Janapa Reddi 教授的 MLSys 书籍 (mlsysbook.ai/tinytorch/) 后,用 C 构建了一个微型的 PyTorch 克隆:非常适合学习机器学习框架的内部工作原理 :) 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:
相关文章

原文
$ toilet -f mono9 -w 100 "autograd.c" 

                    ▄                                    █               
     ▄▄▄   ▄   ▄  ▄▄█▄▄   ▄▄▄    ▄▄▄▄   ▄ ▄▄   ▄▄▄    ▄▄▄█          ▄▄▄  
    ▀   █  █   █    █    █▀ ▀█  █▀ ▀█   █▀  ▀ ▀   █  █▀ ▀█         █▀  ▀ 
    ▄▀▀▀█  █   █    █    █   █  █   █   █     ▄▀▀▀█  █   █         █     
    ▀▄▄▀█  ▀▄▄▀█    ▀▄▄  ▀█▄█▀  ▀█▄▀█   █     ▀▄▄▀█  ▀█▄██    █    ▀█▄▄▀ 
                                 ▄  █                                    
                                  ▀▀                                     

$ cat docs/about.md | fold -w 75

	a minimal reverse mode autograd engine in c with reference counted tensors,
	arena allocated function nodes, explicit dependency counting, centralized 
	gradient accumulation, scalar loss backpropagation and a small set of core 
	tensor ops implemented with tightly coupled forward and backward code.

$ make download

    data/cifar-10-binary  40%[====>         ]  33.10M  2.55MB/s    eta 47s    

$ make run-release

    loaded data
    train samples: 50000
    test samples: 10000
    created model
    starting training

	avg loss: 2.2632, avg acc: 20.48%
    evaluating: 100%|█████████████████████████████████████| 79/79 [0.7it/s]
    test acc: 23.56%

	┌─────────────────── loss (epoch  2/15) ───────────────────┐
	│                              •                           │ 2.3112 (max)
	│                                                          │
	│                            ••                            │
	│            •          •                  •               │
	│•                               •                         │
	│    ••••          • •            •                        │
	│          ••   • •       •                       •        │
	│ ••     •     •                                           │
	│         •           •     •       •   •     •            │
	│   •                                 •        •           │
	│             •  •  •  • • •       •            •   • •    │
	│                               •    •       •             │
	│                                      • •       •     •   ┤––– 2.2941
	│                                           •              │
	│                                         •        • •     │ 2.2899 (min)
	└──────────────────────────────────────────────────────────┘
	96%|██████████████████████████████████████████████▊   | 750/782 [1.5it/s]
联系我们 contact @ memedata.com