第一节课(系列七):Neuron_Network_Entry编码


  接下来我们在入口程序Neuron_Network_Entry.py中调用NetworkStructure.py的方法,之前我们提到输入数据的问题,为了方便读者学习,这里使用二维数组硬编码,二维数组的第一个成员是[0,0,0],二维数组的第二个成员是[0,1,1],二维数组的第三个成员是[1,0,1],二维数组的第四个成员是[1,1,0]。二维数组有4行3列,其特征是什么?二维数组的四行成员,它的第一列、第二列数字如果不同,第三列为1;它的第一列、第二列数字如果相同,第三列为0,这是我们观察的规律,其实就是逻辑运算中的异或操作(Exclusive OR),机器应该可以预测这个规律,可以预测数据是0还是1,只有第一个元素和第二个元素不同的时候,结果才是1,否则为0。这里的数据只有2列,当然也可以是200列,可从数据中关联出某种关系,基于这种关系推断出结果是0还是1。第1列和第2列是2个Feature,第3列是结果。

       那么输入数据中有多少个输入特征Features?就是除了结果列的其他列的列数,这里第1列和第2列线性无关。可以计算instances的第0行的长度是3,但是它的Features是2个,在这里是只有第一列和第二列是features,第三列是根据某种关系(数学公式或者某种运算法则)而得出的结果。

    我们设置隐藏层的hidden_layers为 [4,2],在NetworkStructure.py隐藏层的节点构建中,在外层循环会循环hidden_layers的长度,计算它有多少个元素。例如,TensorFlow的可视化图中,第一层隐藏层的神经元有4个节点,第二层隐藏层神经元有2个节点。在Neuron_Network_Entry.py中对hidden_layers =[4,2]硬编码(hardcode)为两个隐藏层(Hiddenlayer),第一个隐藏层(Hidden Layer)有4个神经元(Neuron),第二个隐藏层(Hidden Layer)有2个神经元(Neuron)。

       这个时候参数num_of_features、hidden_layers已经定义好了,我们将参数传入到NetworkStructure.py的NetworkStructure.create_nodes中。这里有个小作业题:Python中的方法带self、与不带self的区别?没有加self是静态方法,可以直接调用;如果加上self,必须new出来创建一个实例,然后调用。


(1)   带self,要创建一个实例来调用方法。例如: 

class Node: def set_index(self,index):       self._index = index……….node = Node()node.set_index(nodeIndex)  

         

(2)   不带self,直接调用这个方法。例如:

class NetworkStructure:    def create_nodes(num_of_features,hidden_nodes):…….#可以直接调用:nodes = NetworkStructure.create_nodes(num_of_features,hidden_nodes) 

 

    至此,已经编写的Create_AI_Framework_In5Classes(Class1)的Neuron_Network_Entry.py(v1)的代码:

# -*- coding: utf-8 -*-from service.NetworkStructure import NetworkStructurefrom service.NetworkConnection import NetworkConnection#from entity.Node import Node#Exclusive OR: 只有第一个元素和第二个元素不同的时候,结果才是1,否则为0instances = [[0,0,0],             [0,1,1],             [1,0,1],             [1,1,0]]
num_of_features = len(instances[0]) - 1 #在这里是只有第一列和第二列是features,第三列是根据某种关系而得出的结果
hidden_layers = [4,2] #这里hardcode为两个Hidden layer,第一个Hidden Layer有4个Neuron,第二个Hidden Layer有连个Neuron#hidden_layers = [8,4,2]nodes = NetworkStructure.create_nodes(num_of_features,hidden_layers)……




欢迎关注微信公众号:“从零起步学习人工智能”。

640?wx_fmt=png

喜欢我们发布的信息,就在右下角点一下“在看”吧!欢迎转发分享!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

段智华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值