# 推荐 ：手把手教你用Python创建简单的神经网络

numpy库提供了以下四种重要方法：

exp—用于生成自然指数

array—用于生成矩阵

dot—用于矩阵相乘

random—用于生成随机数。请注意，我们将生成随机数，以确保它们的有效分布。

1. 应用Sigmoid函数

1. 训练模型

import numpy as np

class NeuralNetwork():

def __init__(self):

# seeding for random number generation

np.random.seed(1)

#converting weights to a 3 by 1 matrix with values from -1 to 1 and mean of 0

self.synaptic_weights = 2 * np.random.random((3, 1)) - 1

def sigmoid(self, x):

#applying the sigmoid function

return 1 / (1 + np.exp(-x))

def sigmoid_derivative(self, x):

#computing derivative to the Sigmoid function

return x * (1 - x)

def train(self, training_inputs, training_outputs, training_iterations):

#training the model to make accurate predictions while adjusting weights continually

for iteration in range(training_iterations):

#siphon the training data via  the neuron

output = self.think(training_inputs)

#computing error rate for back-propagation

error = training_outputs - output

adjustments = np.dot(training_inputs.T, error * self.sigmoid_derivative(output))

def think(self, inputs):

#passing the inputs via the neuron to get output

#converting values to floats

inputs = inputs.astype(float)

output = self.sigmoid(np.dot(inputs, self.synaptic_weights))

return output

if __name__ == "__main__":

#initializing the neuron class

neural_network = NeuralNetwork()

print("Beginning Randomly Generated Weights: ")

print(neural_network.synaptic_weights)

#training data consisting of 4 examples--3 input values and 1 output

training_inputs = np.array([[0,0,1],

[1,1,1],

[1,0,1],

[0,1,1]])

training_outputs = np.array([[0,1,1,0]]).T

#training taking place

neural_network.train(training_inputs, training_outputs, 15000)

print("Ending Weights After Training: ")

print(neural_network.synaptic_weights)

user_input_one = str(input("User Input One: "))

user_input_two = str(input("User Input Two: "))

user_input_three = str(input("User Input Three: "))

print("Considering New Situation: ", user_input_one, user_input_two, user_input_three)

print("New Output data: ")

print(neural_network.think(np.array([user_input_one, user_input_two, user_input_three])))

print("Wow, we did it!")

ecshujufenxi”微信公众号

|
25天前
|

Python进阶---网络编程
Python进阶---网络编程
33 2
|
1天前
|
Unix Python
Python基础教程（第3版）中文版 第14章 网络编程（笔记）
Python基础教程（第3版）中文版 第14章 网络编程（笔记）
5 0
|
2天前
|

|
3天前
|

Python网络实践：去哪儿旅游数据爬取指南
Python网络实践：去哪儿旅游数据爬取指南
10 1
|
3天前
|

|
4天前
|

Python 网络编程
Python 网络编程
11 4
|
5天前
|

Scrapy，作为一款强大的Python网络爬虫框架，凭借其高效、灵活、易扩展的特性，深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架，以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API，支持灵活的数据抓取、清洗、存储，可扩展到各种数据库。通过自定义组件，Scrapy能适应动态网页和应对反爬策略，同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范，以合法合规的方式进行爬虫开发。随着技术发展，Scrapy在数据收集领域将持续发挥关键作用。
30 4
|
6天前
|

Python在网络安全中的角色是什么？
【6月更文挑战第9天】Python在网络安全中的角色是什么？
8 2
|
10天前
|

25.Python 网络编程：TCP和UDP编程
25.Python 网络编程：TCP和UDP编程
15 2
|
10天前
|

24.Python 网络编程：socket编程
24.Python 网络编程：socket编程
14 2