1.这张图是整个程序的feedforward的流程
2. 这张图是求梯度
3. 下面是源代码copy别人的,地址
# python3
import numpy as np
import random
import os, struct
from array import array as pyarray
from numpy import append, array, int8, uint8, zeros
class NeuralNet(object):
# 初始化神经网络,sizes是神经网络的层数和每层神经元个数
def __init__(self, sizes):
self.sizes_ = sizes
self.num_layers_ = len(sizes) # 层数
self.w_ = [np.random.randn(y, x) for x, y in zip(sizes[:-1], sizes[1:])] # w_、b_初始化为正态分布随机数
self.b_ = [np.random.randn(y, 1) for y in sizes[1:]]
# Sigmoid函数,S型曲线,
def sigmoid(self, z):
return 1.0/(1.0+np.exp(-z))
# Sigmoid函数的导函数
def sigmoid_prime(self, z):
return self.sigmoid(z)*(1-self.sigmoid(z))

本文解析了MNIST数据集的前向传播流程,通过两幅图解展示了从输入到输出的过程以及梯度计算,同时提供了相关源代码。
最低0.47元/天 解锁文章
770

被折叠的 条评论
为什么被折叠?



