代码先放在这啦,理论知识以后再来补充
import numpy as np
import pandas as pd
import time
import matplotlib.pyplot as plt
start = time.time()
class Bp:
def __init__(self,num_input, num_hidden, num_out, num_sample):
# 三个参数分别为输入,隐藏,输出层的节点个数
self.num_input = num_input
self.num_hidden = num_hidden
self.num_out = num_out
# 初始化权重矩阵
"""
为什么使用rand函数结果全为1
"""
# 以正态分布初始化各层权重
self.weight_in = np.random.normal(0.0, num_input ** - 0.5, (num_input, num_hidden)) #第一层的权重
self.weight_out = np.random.normal(0.0, num_hidden ** - 0.5,(num_hidden, num_out)) #第二层的权重
# self.weight_in = np.random.rand(num_input, num_hidden) # 第一层的权重
# self.weight_out = np.random.rand(num_hidden, num_out) # 第二层的权重
# self.weight_in = np.ones((num_input, num_hidden)) #第一层的权重
# self.weight_out = np.ones((num_hidden, num_out)) #第二层的权重
# print(self.weight_in.shape)
#初始化偏置项
# self.b_in = np.random.rand(num_hidden, 1)
# self.b_out = np.random.rand(num_out, 1)
self.b_in = np.zeros((num_hidden, 1))
self.b_out = np.zeros((num_out, 1))
#