推荐 :手把手教你用Python创建简单的神经网络(附代码)_简单的神经网络代码(1)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

下面是这个神经网络示例的训练过程:

第一步:从训练数据集中提取输入,根据训练数据集的权重进行调整,并通过一种计算神经网络输出的方法对其进行筛选。

第二步:计算反向传播错误率。在这种情况下,它是神经元的预测输出与训练数据集的期望输出之间的差异。

第三步:利用误差加权导数公式,根据所得到的误差范围,进行了一些较小的权值调整。

第四步:对这一过程进行15000次迭代。在每次迭代中,整个训练集被同时处理。

我们使用“.T”函数将矩阵从水平位置转换为垂直位置。因此,数字将以如下方式存储:
在这里插入图片描述

最终,神经元的权重将根据所提供的训练数据进行优化。随后,如果让神经元考虑一个新的状态,与先前的状态相同,它便可以作出一个准确的预测。这就是反向传播的方式。

打包运行

最后,NeuralNetwork类初始化成功后,可以运行代码了。

下面是如何在Python项目中创建神经网络的完整代码:

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

            

            #performing weight adjustments

            adjustments = np.dot(training_inputs.T, error \* self.sigmoid\_derivative(output))

 

            self.synaptic_weights += adjustments

 

    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!")

运行代码之后的输出:
在这里插入图片描述
这样,我们便成功地创建了一个简单的神经网络。

神经元首先给自己分配一些随机权重,接着,利用训练实例进行了自我训练。

之后,如果出现新的状态[1,0,0],则它得出的数值为0.9999584。

还记得我们想要的正确答案是1吗?

这个数值非常接近,Sigmoid函数输出值在0到1之间。

当然,在这个例子中,我们只使用一个神经元网络来完成简单的任务。如果我们把几千个人工神经网络连接在一起,情况将会是怎样呢?我们能不能完全模仿人类的思维方式呢?

读者福利:知道你对Python感兴趣,便准备了这套python学习资料

👉[[CSDN大礼包:《python兼职资源&全套学习资料》免费分享]]安全链接,放心点击

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论
  • ④ 20款主流手游迫解 爬虫手游逆行迫解教程包
  • ⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单神经网络模型代码Python 实现: ```python import numpy as np class NeuralNetwork: def __init__(self, layers): self.layers = layers self.weights = [np.random.randn(layers[i], layers[i+1]) for i in range(len(layers)-1)] self.biases = [np.zeros((1, layers[i+1])) for i in range(len(layers)-1)] def sigmoid(self, x): return 1 / (1 + np.exp(-x)) def sigmoid_derivative(self, x): return x * (1 - x) def feedforward(self, x): a = x for i in range(len(self.weights)): z = np.dot(a, self.weights[i]) + self.biases[i] a = self.sigmoid(z) return a def backpropagation(self, x, y): a = [x] z_list = [] for i in range(len(self.weights)): z = np.dot(a[i], self.weights[i]) + self.biases[i] z_list.append(z) a.append(self.sigmoid(z)) delta = (a[-1] - y) * self.sigmoid_derivative(a[-1]) deltas = [delta] for i in range(len(self.weights)-1, 0, -1): delta = np.dot(deltas[-1], self.weights[i].T) * self.sigmoid_derivative(a[i]) deltas.append(delta) deltas.reverse() for i in range(len(self.weights)): self.weights[i] -= 0.1 * np.dot(a[i].T, deltas[i]) self.biases[i] -= 0.1 * deltas[i] def train(self, X, y, epochs): for epoch in range(epochs): for x, y_true in zip(X, y): self.backpropagation(x, y_true) def predict(self, X): return np.array([np.argmax(self.feedforward(x)) for x in X]) ``` 这个代码实现一个基本的多层神经网络,使用了 sigmoid 激活函数和反向传播算法来训练模型。你可以传入一个层列表(例如 [2, 3, 1])来定义神经网络的结构,然后使用 train 函数来训练模型,使用 predict 函数来进行预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值