浅层神经网络搭建
数据来源: https://blog.csdn.net/u013733326/article/details/79702148
参考:https://blog.csdn.net/qq_29762941/article/details/80343185
目标:
手动建立一个基于反向传播的神经网络,包含一个隐藏层,实现一个二维平面数据分类。可以在jupyter notebook上分步进行或在pycharm上建立项目运行。
程序流程:
1.数据准备
import numpy as np #引入标准库
import matplotlib.pyplot as plt
np.random.seed(1) #生成随机种子,保证验证结果一样
(1)创建数据集
#创建二维分类数据集 ,直接调用,得到训练数据
def load_planar_dataset():
np.random.seed(1)
m = 400 # number of examples
N = int(m/2) # number of points per class
D = 2 # dimensionality
X = np.zeros((m,D)) # data matrix where each row is a single example
Y = np.zeros((m,1), dtype='uint8') # labels vector (0 for red, 1 for blue)
a = 4 # maximum ray of the flower
for j in range(2):
ix = range(N*j,N*(j+1))
t = np.linspace(j*3.12,(j+1)*3.12,N) + np.random.randn(N)*0.2 # theta
r = a*np.sin(4*t) + np.random.randn(N)*0.2 # radius
X[ix] = np.c_[r*np.sin(t), r*np.cos(t)]
Y[ix] = j
X = X.T
Y