← 开源
kdexd

digit-classifier

A single handwritten digit classifier, using the MNIST dataset. Pure Numpy.

TutorialsML/AI fundamentalsPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
788
Star
82
Fork
+0
本周
4
贡献者
创建于 2015-10-21 · 更新于 2026-09-17 · 今日第 13818 名
主要开发者
radarhereChrisAntakimanojbalaji1

kdexd/digit-classifier 排名第 13,818,有 788 个星标。

同类别比较

kdexd/digit-classifier 排名第 13,818,此处有 8 个同类条目;svjan5/GNNs-for-NLP 排名第 13,811。

同类别比较
名称排名指标
ws13685555932/machine_learning_derivation13,801
星标数:
790
分叉数:
224
简介:
notes of machine learning algorithm derivation
ltdrdata/ComfyUI-extension-tutorials13,806
星标数:
789
分叉数:
53
panaverse/learn-generative-ai13,810
语言:
Python
星标数:
789
分叉数:
286
简介:
Learn Cloud Applied Generative AI Engineering (GenEng) using OpenAI, Gemini, Streamlit, Containers, Serverless, Postgres, LangChain, Pinecone, and Next.js
svjan5/GNNs-for-NLP13,811
语言:
Python
星标数:
789
分叉数:
111
简介:
Tutorial: Graph Neural Networks for Natural Language Processing at EMNLP 2019 and CODS-COMAD 2020
prateekbhustali/Physics-Informed-Neural-Networks13,825
语言:
Jupyter Notebook
星标数:
787
分叉数:
159
简介:
Investigating PINNs
keras-team/keras-docs-zh13,836
星标数:
786
分叉数:
254
简介:
Chinese (zh-cn) translation of the Keras documentation.
petercorke/RVC3-python13,847
语言:
Jupyter Notebook
星标数:
785
分叉数:
177
简介:
Code examples for Robotics, Vision & Control 3rd edition in Python
wx-chevalier/AI-Notes13,850
语言:
Jupyter Notebook
星标数:
785
分叉数:
239
简介:
:books: [.md & .ipynb] Series of Artificial Intelligence & Deep Learning, including Mathematics Fundamentals, Python Practices, NLP Application, etc. 💫 人工智能与深度学习实战,数理统计篇 | 机器学习篇 | 深度学习篇 | 自然语言处理篇 | 工具实践 Scikit & Tensoflow & PyTorch 篇 | 行业应用 & 课程笔记
关键参数与规格
关键参数与规格
参数值
语言Python
类别Tutorials
子类别ML/AI fundamentals
星标数788
分叉数82
贡献者4
创建日期2015-10-21
更新日期2026-09-17
1 天星标数0
7 天星标数0
排名13,818
上次排名13,710
排名变化-108
7 天星标排名14,136
上次 7 天星标排名14,157
7 天星标排名变化21
总星标排名13,523
上次总星标排名13,507
总星标排名变化-16
国家USA
README 摘录

MNIST Handwritten Digit Classifier ================================== An implementation of multilayer neural network using library. The implementation is a modified version of Michael Nielsen's implementation in Neural Networks and Deep Learning book. Brief Background: If you are familiar with basics of Neural Networks, feel free to skip this section. For total beginners who landed up here before reading anything about Neural Networks: Neural networks are made up of building blocks known as **Sigmoid Neurons**. These are named so because their output follows Sigmoid

Function. **x j ** are inputs, which are weighted by **w j ** weights and the neuron has its intrinsic bias **b**. The output of neuron is known as "activation ( **a** )". _**Note:** There are other functions in use other than sigmoid, but this information for now is sufficient for beginners. _ A neural network is made up by stacking layers of neurons, and is defined by the weights of connections and biases of neurons. Activations are a result dependent on a certain input

. This book and Stanford's Machine Learning Course by Prof. Andrew Ng are recommended as good resources for beginners. At times, it got confusing to me while referring both resources: MATLAB has _1-indexed_ data structures, while has them _0-indexed_. Some parameters of a neural network are not defined for the input layer, so there was a little mess up in mathematical equations of book, and indices in code. For example according to the book, the bias vector of second

layer of neural network was referred as as input layer (first layer) has no bias vector. I found it a bit inconvenient to play with. I am fond of Scikit Learn's API style, hence my class has a similar structure of code. While theoretically it resembles the book and Stanford's course, you can find simple methods such as , , to train, test, validate the model respectively. Naming and Indexing Convention: I have followed a particular convention in indexing quantities. Dimensions of

quantities are listed according to this figure. **Layers** Input layer is the **0 th ** layer, and output layer is the **L th ** layer. **Weights** Weights in this neural network implementation are a list of matrices ( ). is a matrix of weights entering the **l th ** layer of the network (Denoted as **w l **). An element of this matrix is denoted as **w l jk **. It is a part of **j th ** row, which is a collection of all weights entering **j

th ** neuron, from all neurons (0 to k) of **(l-1) th ** layer. No weights enter the input layer, hence is redundant, and further it follows as being the collection of weights entering layer 1 and so on. **Biases** Biases in this neural network implementation are a list of one-dimensional vectors ( ). is a vector of biases of neurons in the **l th ** layer of network (Denoted as **b l **). An element of this vector is denoted as **b l

j **. It is a part of **j th ** row, the bias of **j th ** in layer. Input layer has no

常见问题

记录了多少星标和分叉?

kdexd/digit-classifier 有 788 个星标和 82 个分叉。

仓库排名是多少?

kdexd/digit-classifier 排名第 13,818。

记录的语言和类别是什么?

kdexd/digit-classifier 有 788 个星标,语言为 Python,类别为 Tutorials。

哪个仓库排名最接近?

kdexd/digit-classifier 与 svjan5/GNNs-for-NLP 比较,后者排名第 13,811,有 789 个星标。

README

MNIST Handwritten Digit Classifier

An implementation of multilayer neural network using numpy library. The implementation is a modified version of Michael Nielsen's implementation in Neural Networks and Deep Learning book.

Brief Background:

If you are familiar with basics of Neural Networks, feel free to skip this section. For total beginners who landed up here before reading anything about Neural Networks:

  • Neural networks are made up of building blocks known as Sigmoid Neurons. These are named so because their output follows Sigmoid Function.
  • xj are inputs, which are weighted by wj weights and the neuron has its intrinsic bias b. The output of neuron is known as "activation ( a )".

Note: There are other functions in use other than sigmoid, but this information for now is sufficient for beginners.

  • A neural network is made up by stacking layers of neurons, and is defined by the weights of connections and biases of neurons. Activations are a result dependent on a certain input.

Why a modified implementation ?

This book and Stanford's Machine Learning Course by Prof. Andrew Ng are recommended as good resources for beginners. At times, it got confusing to me while referring both resources:

MATLAB has 1-indexed data structures, while numpy has them 0-indexed. Some parameters of a neural network are not defined for the input layer, so there was a little mess up in mathematical equations of book, and indices in code. For example according to the book, the bias vector of second layer of neural network was referred as bias[0] as input layer (first layer) has no bias vector. I found it a bit inconvenient to play with.

I am fond of Scikit Learn's API style, hence my class has a similar structure of code. While theoretically it resembles the book and Stanford's course, you can find simple methods such as fit, predict, validate to train, test, validate the model respectively.

Naming and Indexing Convention:

I have followed a particular convention in indexing quantities. Dimensions of quantities are listed according to this figure.

Layers

  • Input layer is the 0th layer, and output layer is the Lth layer. Number of layers: NL = L + 1.
sizes = [2, 3, 1]

Weights

  • Weights in this neural network implementation are a list of matrices (numpy.ndarrays). weights[l] is a matrix of weights entering the lth layer of the network (Denoted as wl).
  • An element of this matrix is denoted as wljk. It is a part of jth row, which is a collection of all weights entering jth neuron, from all neurons (0 to k) of (l-1)th layer.
  • No weights enter the input layer, hence weights[0] is redundant, and further it follows as weights[1] being the collection of weights entering layer 1 and so on.
weights = |¯   [[]],    [[a, b],    [[p],   ¯|
          |              [c, d],     [q],    |
          |_             [e, f]],    [r]]   _|

Biases

  • Biases in this neural network implementation are a list of one-dimensional vectors (numpy.ndarrays). biases[l] is a vector of biases of neurons in the lth layer of network (Denoted as bl).
  • An element of this vector is denoted as blj. It is a part of jth row, the bias of jth in layer.
  • Input layer has no biases, hence biases[0] is redundant, and further it follows as biases[1] being the biases of neurons of layer 1 and so on.
biases = |¯   [[],    [[0],    [[0]]   ¯|
         |     []],    [1],             |
         |_            [2]],           _|

'Z's

  • For input vector x to a layer l, z is defined as: zl = wl . x + bl
  • Input layer provides x vector as input to layer 1, and itself has no input, weight or bias, hence zs[0] is redundant.
  • Dimensions of zs will be same as biases.

Activations

  • Activations of lth layer are outputs from neurons of lth which serve as input to (l+1)th layer. The dimensions of biases, zs and activations are similar.
  • Input layer provides x vector as input to layer 1, hence activations[0] can be related to x - the input training example.

Execution of Neural network

#to train and test the neural network algorithm, please use the following command
python main.py
排名相邻
同类项目