{"id":31720877,"url":"https://github.com/zc911/matrixslow","last_synced_at":"2025-10-09T03:20:01.369Z","repository":{"id":40637178,"uuid":"283188667","full_name":"zc911/MatrixSlow","owner":"zc911","description":"A simple deep learning framework in pure python for purpose of learning in DL","archived":false,"fork":false,"pushed_at":"2025-02-11T03:37:43.000Z","size":10480,"stargazers_count":433,"open_issues_count":1,"forks_count":89,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-02-11T04:27:26.659Z","etag":null,"topics":["book","deep-learning","framework","python"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zc911.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-28T11:12:08.000Z","updated_at":"2025-02-11T03:37:48.000Z","dependencies_parsed_at":"2022-07-18T10:39:12.454Z","dependency_job_id":null,"html_url":"https://github.com/zc911/MatrixSlow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zc911/MatrixSlow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zc911%2FMatrixSlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zc911%2FMatrixSlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zc911%2FMatrixSlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zc911%2FMatrixSlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zc911","download_url":"https://codeload.github.com/zc911/MatrixSlow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zc911%2FMatrixSlow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000712,"owners_count":26082911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["book","deep-learning","framework","python"],"created_at":"2025-10-09T03:19:26.592Z","updated_at":"2025-10-09T03:20:01.363Z","avatar_url":"https://github.com/zc911.png","language":"TypeScript","readme":"\u003c!--\n * @Author: chenzhen\n * @Date: 2019-07-09 11:36:06\n * @LastEditTime: 2020-10-26 16:10:35\n * @LastEditors: chenzhen\n * @Description:\n--\u003e\n# MatrixSlow - 用Python实现深度学习框架\n\n[English Version](README_EN.md)\n\n![avatar](book.png)\n\n### 简介\n1984 年，《现代操作系统》（俗称马戏团书）的作者塔嫩鲍姆教授（Andrew S. Tanenbaum）开发了一个教学用的操作系统[Minix](https://www.minix3.org)。受其启发（多大程度未知），Linus Torvalds 创造了Linux系统。这里我们决定效仿前辈，用Python语言从零开始实现一个基于计算图的机器学习/深度学习框架，我们称其MatrixSlow。\n\n实现MatrixSlow的初衷是为了团队内部分享学习。通过把机器学习的理论、原理和工程实践结合起来，在动手“建造”中加深对理论的“理解”。深度学习框架正是一个最好的例子。但是，以TensorFlow为代表的现代深度学习框架的源码对于学习而言已经过于复杂，因此，我们决定用纯Python实现一个简单的深度学习框架MatrixSlow（核心代码2K行左右，只依赖了Numpy）。这个框架基于计算图，支持自动求导和梯度下降优化算法（及变体）。我们用该框架搭建了一些经典模型，包括LR、FM、DNN、CNN、RNN、W\u0026D、DeepFM等）。该框架还包括一些工程上的方案，包括训练器、分布式训练、模型部署和服务等。取MatrixSlow这个谦卑的名字是为了表明它只是一个用于教学的框架，只支持二阶张量（Matrix，但表达力上无损失，详见本书第12章第1节），未考虑计算优化，因此运行起来有些slow。\n\n除了把MatrixSlow的代码开源之外，我们还把设计MatrixSlow时的一些思考和实现细节汇集成书《用Python实现深度学习框架》，由人民邮电出版社（图灵原创）正式出版上架，各大电商平台已可以购买：\n\n- [京东](https://item.jd.com/12994556.html?cu=true\u0026utm_source=zhuanlan.zhihu.com\u0026utm_medium=tuiguang\u0026utm_campaign=t_1001542270_1002093764_0_1956949436\u0026utm_term=71be62a1a29845aaa4ac74b359c06e49)\n- [当当](http://product.dangdang.com/29139156.html)\n- [淘宝](https://detail.tmall.com/item.htm?spm=a230r.1.14.110.52abd576UEklUs\u0026id=628890432853\u0026ns=1\u0026abbucket=2)\n\n我们在代码中写了尽量详细的注释，为即便不买书的同学，通过阅读源码亦能理解这个“麻雀虽小五脏俱全”的框架，并从中学习和理解机器学习背后的原理。\n\n著名物理学家，诺贝尔奖得主[Richard Feynman](https://en.wikipedia.org/wiki/Richard_Feynman)办公室的黑板上写了：\"What I cannot create, I do not understand.\"，即“我不能建造的，我便无法理解”，MatrixSlow和本书，算是我们对伟大科学先哲思想的一次小小的践行。\n\n### 特性\n\n- 基于计算图，可用于搭建大多数的机器学习模型。\n- 支持自动求导。\n- 支持随机梯度下降优化算法及其几个重要变种（如RMSProp、ADAGrad、ADAM等）。\n- 支持常见的模型评估算法。\n- 支持模型保存和加载。\n- 支持PS和Ring AllReduce分布式训练。\n- 支持模型serving 。\n\n### 依赖\n核心代码：\n```\n- python 3.7及以上\n- numpy\n```\n分布式训练：\n```\n- protobuf\n- grpc\n```\n示例代码：\n```\n- pandas\n```\n### 代码结构\n```\n.\n├── README.md\n├── benchmark\n├── example\n├── matrixslow\n└── matrixslow_serving\n```\n- matrixslow: 核心代码部分，包括计算图、自动求导和优化算法、模型保存加载、分布式训练。\n- matrixslow_serving: 通用的模型推理服务，类似tensorflow serving 。\n- example: 按照书中章节分目录的示例，比如ch05介绍了如何用matrixslow搭建和训练多层全连接神经网络，ch11演示了如何进行分布式训练。\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzc911%2Fmatrixslow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzc911%2Fmatrixslow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzc911%2Fmatrixslow/lists"}