程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

设计神经网络并用Python实现 #机器学习

hfteth 2025-03-25 13:30:49 技术文章 41 ℃

现在让我们来构建deep learning model。在这个step中首先需要设计model 的architecture架构,然后用代码来定义model class,并创建一个该class的instance实例,用于模型的训练和测试。

大家现在看到的就是将要构建的模型架构 architecture,尽管它还是很简单,但是与第一个新型模型相比,它多了一个由五个神经元newr组成的隐藏层hidden nail。这里的数据集有两个特征及x轴和y轴的坐标,它们作为输入同时经过隐藏层的五个神经元,然后达到输出层的特征,即class a或者class b。

接下来将在python中定义这个模型,让我们开始。

·首先需要导入n n模块,也就是newer network,稍后会用到它的一些class。

·接下来可以创建一个符合model architecture架构的class,通过继承newer network base class module定义了一个名为circle model v0的class。

·然后在in need magic method中是用linear class定义了两个nail,nail one是接受两个improve features并输出五个features,对应于从input nail到hit nail。near to是将两个feature减少为一个up,对应从hit nail到output nail。这两层都使用linear方形,也就是linear class名称的由来。

·接着从小forward method指定输入数据x是如何在网络中传递的,input首先经过neo one,然后通过neo two最终生成了output。

·在创建circuit model v0 class的实例之前设置了一个random said,用来确保模型参数的可重复性。

·运行代码之后会看到model 零的neo one和neo two的信息了,可以这样理解,neo one的五个神经元同时接收两个相同的输入信号,经过线线处理然后加上编制,不要只生成五个信号。这五个信号又作为neo two的输入,经过线性处理然后编制,最终生成一个信号。这个信号或者说数字就是model 零模型的唯一输出一个零到一之间的概率分布。

·然后可以查看一下model 零参数,使用state dictionary method运行代码之后会发现number one是有一个五乘二的v matrix权重矩阵,其中五对应五个神经元,二对应两个输入信号perfect。

·此外还有一个ship为五的bells vector,因为有五个神经元,所以对应五个bells。顺便说一下这里参数是随机生成的,如果没有设置random say或者设置了不一样的number,看到的时候是不一样的,这也是random say的意义所在。

·对于neo two是一个一乘五的wait matrix和一个ship唯一的bells factor,结果之前的模型加过示意图,大家可以很容易的理解这些参数的意义。

最近发表
标签列表