给我一个双层神经网络,使用随机梯度下降优化的代码
时间: 2023-03-14 22:16:08 浏览: 111
基于梯度下降的RBF神经网络MATLAB代码
我可以为您提供一个双层神经网络的Python代码,使用随机梯度下降优化,如下: import numpy as np# 输入数据
X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
# 输出数据
y = np.array([[0], [1], [1], [0]]) # 定义激活函数
def sigmoid(x):
return 1/(1+np.exp(-x))# 求导函数
def sigmoid_deriv(x):
return x*(1-x)# 初始化权重
np.random.seed(1)
w1 = np.random.randn(3, 4)
w2 = np.random.randn(4, 1)# 设置学习率
lr = 0.1# 训练模型
for i in range(60000):
# 正向传播
z1 = np.dot(X, w1)
a1 = sigmoid(z1)
z2 = np.dot(a1, w2)
a2 = sigmoid(z2) # 计算误差
err = y - a2
diff = err*sigmoid_deriv(a2) # 反向传播
err_a1 = np.dot(diff, w2.T)
diff_a1 = err_a1*sigmoid_deriv(a1) w2 += lr*np.dot(a1.T, diff)
w1 += lr*np.dot(X.T, diff_a1)# 打印最终结果
print(a2)
阅读全文