使用python定义一个神经网络
python定义一个神经网络是进行深度学习或者实现神经网络的基础,那么如果定义一个深度神经网络的结构呢?
import numpy as np
class Network(object):
def __init__(self,sizes):
self.num_layers = len(sizes)
self.sizes = sizes
self.biases = [np.random.randn(y,1) for y in sizes[1:]]
self.weights = [np.random.randn(y,x) for x,y in zip(sizes(:-1),size(1:)]
- 我们需要输入的参数就sizes。sizes是一个列表,假设为[2,3,1]。那么他表示要你所构建的神经网络是是三层,每层的节点数为2,3,1。当然有的书上写输入层不算一层,但是在这里我们把输入层看做一层,因为输入层神经元的个数我们也需要定义。
- 在这个结构中最重要的就是我们要初始化biases(偏置)和weights(权重)。我们是用np.random.randn函数来随机初始化一个满足高斯分布的矩阵,至于矩阵的维度就要和你的参数有关了。