Python利用numpy实现三层神经网络的示例代码

  • Post category:Python

以下是关于Python利用numpy实现三层神经网络的示例代码的攻略:

Python利用numpy实现三层神经网络

在Python中,可以使用numpy库来实现三层神经网络。以下是一个示例:

import numpy as np

# 定义sigmoid函数
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 定义sigmoid函数的导数
def sigmoid_derivative(x):
    return x * (1 - x)

# 输入数据
X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])

# 输出数据
y = np.array([[0], [1], [1], [0]])

# 设置随机数种子
np.random.seed(1)

# 初始化权重
syn0 = 2 * np.random.random((3, 4)) - 1
syn1 = 2 * np.random.random((4, 1)) - 1

# 训练模型
for i in range(60000):
    # 前向传播
    l0 = X
    l1 = sigmoid(np.dot(l0, syn0))
    l2 = sigmoid(np.dot(l1, syn1))

    # 计算误差
    l2_error = y - l2

    # 反向传播
    l2_delta = l2_error * sigmoid_derivative(l2)
    l1_error = l2_delta.dot(syn1.T)
    l1_delta = l1_error * sigmoid_derivative(l1)

    # 更新权重
    syn1 += l1.T.dot(l2_delta)
    syn0 += l0.T.dot(l1_delta)

# 输出结果
print("Output after training:")
print(l2)

在这个示例中,我们首先定义了sigmoid函数和sigmoid函数的导数。然后,我们定义了输入数据X和输出数据y。接着,我们初始化了权重syn0和syn1。最后,我们使用循环训练模型,使用前向传播和反向传播来更新权重。最后,我们输出了训练后的结果。

示例2

import numpy as np

# 定义sigmoid函数
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 定义sigmoid函数的导数
def sigmoid_derivative(x):
    return x * (1 - x)

# 输入数据X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])

# 输出数据
y = np.array([[0], [1], [1], [0]])

# 设置随机数种子
np.seed(1)

# 初始化权重
syn0 = 2 * np.random.random((3, 4)) - 1
syn1 = 2 * np.random.random((4, 1)) - 1

# 训练模型
for i in range(60000):
    # 前向传播
    l0 = X
    l1 = sigmoid.dot(l0, syn0))
    l2 = sigmoid(np.dot(l1, syn1))

    # 计算误差
    l2_error = y - l2

    # 反向传播
    l2_delta = l2_error * sigmoid_derivative(l2)
    l1_error = l2_delta.dot(syn1.T)
    l1_delta = l1_error * sigmoid_derivative(l1)

    # 更新权重
    syn1 += l1.T.dot(l2_delta)
    syn0 += l0.T.dot(l1_delta)

# 输出结果
print("Output after training:")
print(l2)

在这个示例中,我们使用相同的代码,但是我们将训练次数从60000减少到10000。这将导致训练后的结果不如第一个示例那么准确。

总结

这就是于Python利用numpy实现三层神经网络的示例代码的攻略。使用numpy库可以方便地实现神经网络,并且可以使用前传播和反向传播来更新权重。希望这篇文章能够帮助您更好地理解如何使用numpy库来实现神经网络。