以下是一个基本的神经网络Python代码示例:

import numpy as np

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

# 定义神经网络类
class NeuralNetwork:
    def __init__(self, input_nodes, hidden_nodes, output_nodes, learning_rate):
        self.input_nodes = input_nodes
        self.hidden_nodes = hidden_nodes
        self.output_nodes = output_nodes
        self.learning_rate = learning_rate

        # 初始化权重
        self.weights_input_hidden = np.random.normal(0.0, self.input_nodes**-0.5, (self.input_nodes, self.hidden_nodes))
        self.weights_hidden_output = np.random.normal(0.0, self.hidden_nodes**-0.5, (self.hidden_nodes, self.output_nodes))

    # 训练函数
    def train(self, inputs, targets):
        # 前向传播
        hidden_inputs = np.dot(inputs, self.weights_input_hidden)
        hidden_outputs = sigmoid(hidden_inputs)
        final_inputs = np.dot(hidden_outputs, self.weights_hidden_output)
        final_outputs = sigmoid(final_inputs)

        # 后向传播
        output_errors = targets - final_outputs
        hidden_errors = np.dot(output_errors, self.weights_hidden_output.T) * hidden_outputs * (1 - hidden_outputs)

        # 更新权重
        self.weights_hidden_output += self.learning_rate * np.dot(hidden_outputs.T, output_errors)
        self.weights_input_hidden += self.learning_rate * np.dot(inputs.T, hidden_errors)

    # 预测函数
    def predict(self, inputs):
        # 前向传播
        hidden_inputs = np.dot(inputs, self.weights_input_hidden)
        hidden_outputs = sigmoid(hidden_inputs)
        final_inputs = np.dot(hidden_outputs, self.weights_hidden_output)
        final_outputs = sigmoid(final_inputs)
        return final_outputs

这个神经网络类包含一个构造函数,一个训练函数和一个预测函数。构造函数初始化神经网络的参数和权重。训练函数使用输入和目标数据训练神经网络,并通过前向传播和后向传播更新权重。预测函数使用输入数据运行前向传播并返回输出

神经网络python代码

原文地址: https://www.cveoy.top/t/topic/e8kt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录