神经网络np.round(A2)的应用

用于单隐藏层的二分类神经网络
大于0.5输出为1,小于等于0.5输出0

实例:

import numpy as np
data=[0.68 ,.10 ,.87 ,.45 ,.36 ,.98 ,.02 ,.07 ,.5]
d
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BP神经网络是一种常用的人工神经网络模型,用于解决分类和回归问题。下面是一个简单的BP神经网络的实例代码: ```python import numpy as np # 定义激活函数 def sigmoid(x): return 1 / (1 + np.exp(-x)) # 定义BP神经网络类 class NeuralNetwork: def __init__(self, input_size, hidden_size, output_size): self.input_size = input_size self.hidden_size = hidden_size self.output_size = output_size # 初始化权重和偏置 self.W1 = np.random.randn(self.input_size, self.hidden_size) self.b1 = np.zeros((1, self.hidden_size)) self.W2 = np.random.randn(self.hidden_size, self.output_size) self.b2 = np.zeros((1, self.output_size)) def forward(self, X): # 前向传播 self.z1 = np.dot(X, self.W1) + self.b1 self.a1 = sigmoid(self.z1) self.z2 = np.dot(self.a1, self.W2) + self.b2 self.a2 = sigmoid(self.z2) return self.a2 def backward(self, X, y, learning_rate): # 反向传播 m = X.shape # 计算输出层的误差 delta2 = self.a2 - y # 计算隐藏层的误差 delta1 = np.dot(delta2, self.W2.T) * (self.a1 * (1 - self.a1)) # 更新权重和偏置 dW2 = np.dot(self.a1.T, delta2) / m db2 = np.sum(delta2, axis=0) / m dW1 = np.dot(X.T, delta1) / m db1 = np.sum(delta1, axis=0) / m self.W2 -= learning_rate * dW2 self.b2 -= learning_rate * db2 self.W1 -= learning_rate * dW1 self.b1 -= learning_rate * db1 def train(self, X, y, epochs, learning_rate): for i in range(epochs): output = self.forward(X) self.backward(X, y, learning_rate) def predict(self, X): return np.round(self.forward(X)) # 创建数据集 X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) y = np.array([, , , ]) # 创建BP神经网络对象 nn = NeuralNetwork(input_size=2, hidden_size=4, output_size=1) # 训练神经网络 nn.train(X, y, epochs=10000, learning_rate=0.1) # 预测新样本 new_X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) predictions = nn.predict(new_X) print(predictions) ``` 这个实例代码实现了一个简单的BP神经网络,用于解决异或逻辑门问题。代码中定义了激活函数sigmoid,以及BP神经网络类NeuralNetwork。在训练过程中,通过前向传播和反向传播更新权重和偏置,最终得到训练好的神经网络模型。然后可以使用predict方法对新样本进行预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值