All Projects → zackchen → Matrixslow

zackchen / Matrixslow

A simple deep learning framework in pure python for purpose of learning in DL

Programming Languages

python
139335 projects - #7 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Matrixslow

Choo Handbook
🚂✋📖 - Learn the choo framework through a set of exercises
Stars: ✭ 266 (+37.82%)
Mutual labels:  framework, book
Androidnote
🔥 Android 进阶笔记,包含常用的技术框架、博客社区、书籍等。
Stars: ✭ 614 (+218.13%)
Mutual labels:  framework, book
Fe
前端热门文章阅读
Stars: ✭ 174 (-9.84%)
Mutual labels:  framework, book
Go Chassis
a microservice framework for rapid development of micro services in Go with rich eco-system
Stars: ✭ 2,428 (+1158.03%)
Mutual labels:  framework
Lore
Respectfully opinionated convention-driven framework for building React applications. Built on React, Webpack, Redux, and React Router.
Stars: ✭ 190 (-1.55%)
Mutual labels:  framework
Celestite
Beautifully reactive, server-side rendered Svelte apps w/ a Crystal backend
Stars: ✭ 185 (-4.15%)
Mutual labels:  framework
Grial
A Node.js framework for creating GraphQL API servers easily and without a lot of boilerplate.
Stars: ✭ 194 (+0.52%)
Mutual labels:  framework
Automate With Ansible
《現代 IT 人一定要知道的 Ansible 自動化組態技巧》
Stars: ✭ 188 (-2.59%)
Mutual labels:  book
Component
🔥🔥🔥A powerful componentized framework.一个强大、100% 兼容、支持 AndroidX、支持 Kotlin并且灵活的组件化框架
Stars: ✭ 2,434 (+1161.14%)
Mutual labels:  framework
Ipfs Internals
IPFS 从入门到精通
Stars: ✭ 192 (-0.52%)
Mutual labels:  book
Book 5.0 1
The Symfony 5 book source: The Fast Track
Stars: ✭ 192 (-0.52%)
Mutual labels:  book
Singool
Backbone.js based framework for developing single-page web applications
Stars: ✭ 190 (-1.55%)
Mutual labels:  framework
Fe4ml Zh
📖 [译] 面向机器学习的特征工程
Stars: ✭ 2,323 (+1103.63%)
Mutual labels:  book
Apworks Core
Apworks framework supporting .NET Core
Stars: ✭ 190 (-1.55%)
Mutual labels:  framework
Qiling
Qiling Advanced Binary Emulation Framework
Stars: ✭ 2,816 (+1359.07%)
Mutual labels:  framework
Ouf
WoW AddOn - Unit frame framework.
Stars: ✭ 189 (-2.07%)
Mutual labels:  framework
Actionhero
Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks
Stars: ✭ 2,280 (+1081.35%)
Mutual labels:  framework
Quokka
LOOKING FOR NEW MAINTAINER - Quokka is a Content Management System - `docker run --rm -it -p 5000:5000 quokka/quokka`
Stars: ✭ 2,198 (+1038.86%)
Mutual labels:  framework
Amber
A Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance.
Stars: ✭ 2,345 (+1115.03%)
Mutual labels:  framework
Flare Swift
Swift runtime for Flare.
Stars: ✭ 193 (+0%)
Mutual labels:  framework

MatrixSlow - 用Python实现深度学习框架

English Version

avatar

简介

1984 年,《现代操作系统》(俗称马戏团书)的作者塔嫩鲍姆教授(Andrew S. Tanenbaum)开发了一个教学用的操作系统Minix。受其启发(多大程度未知),Linus Torvalds 创造了Linux系统。这里我们决定效仿前辈,用Python语言从零开始实现一个基于计算图的机器学习/深度学习框架,我们称其MatrixSlow。

实现MatrixSlow的初衷是为了团队内部分享学习。通过把机器学习的理论、原理和工程实践结合起来,在动手“建造”中加深对理论的“理解”。深度学习框架正是一个最好的例子。但是,以TensorFlow为代表的现代深度学习框架的源码对于学习而言已经过于复杂,因此,我们决定用纯Python实现一个简单的深度学习框架MatrixSlow(核心代码2K行左右,只依赖了Numpy)。这个框架基于计算图,支持自动求导和梯度下降优化算法(及变体)。我们用该框架搭建了一些经典模型,包括LR、FM、DNN、CNN、RNN、W&D、DeepFM等)。该框架还包括一些工程上的方案,包括训练器、分布式训练、模型部署和服务等。取MatrixSlow这个谦卑的名字是为了表明它只是一个用于教学的框架,只支持二阶张量(Matrix,但表达力上无损失,详见本书第12章第1节),未考虑计算优化,因此运行起来有些slow。

除了把MatrixSlow的代码开源之外,我们还把设计MatrixSlow时的一些思考和实现细节汇集成书《用Python实现深度学习框架》,由人民邮电出版社(图灵原创)正式出版上架,各大电商平台已可以购买:

我们在代码中写了尽量详细的注释,为即便不买书的同学,通过阅读源码亦能理解这个“麻雀虽小五脏俱全”的框架,并从中学习和理解机器学习背后的原理。

著名物理学家,诺贝尔奖得主Richard Feynman办公室的黑板上写了:"What I cannot create, I do not understand.",即“我不能建造的,我便无法理解”,MatrixSlow和本书,算是我们对伟大科学先哲思想的一次小小的践行。

特性

  • 基于计算图,可用于搭建大多数的机器学习模型。
  • 支持自动求导。
  • 支持随机梯度下降优化算法及其几个重要变种(如RMSProp、ADAGrad、ADAM等)。
  • 支持常见的模型评估算法。
  • 支持模型保存和加载。
  • 支持PS和Ring AllReduce分布式训练。
  • 支持模型serving 。

依赖

核心代码:

- python 3.7及以上
- numpy

分布式训练:

- protobuf
- grpc

示例代码:

- pandas

代码结构

.
├── README.md
├── benchmark
├── example
├── matrixslow
└── matrixslow_serving
  • matrixslow: 核心代码部分,包括计算图、自动求导和优化算法、模型保存加载、分布式训练。
  • matrixslow_serving: 通用的模型推理服务,类似tensorflow serving 。
  • example: 按照书中章节分目录的示例,比如ch05介绍了如何用matrixslow搭建和训练多层全连接神经网络,ch11演示了如何进行分布式训练。
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].