接下来创建输出层Output layer。
将之前创建Node节点的代码复制过来进行修改,作为输出层,给神经元节点命名的时候命名为Output,输出层的节点是结果,显然不是Bias,因此设置输出层的node的_is_bias_unit为False值。
这样我们初步创建了神经元网络节点。 以下是本节已经编写的创建神经元网络节点的代码版本(NetworkStructure.py(v1)),代码中创建了输入层的Bias节点、隐藏层所有的Bias节点、隐藏层的所有神经元节点、输出层的节点,但这里还没有创建输入层的节点,后续我们将进行迭代完善,加上这部分代码。
Create_AI_Framework_In5Classes(Class1)版本的NetworkStructure.py(v1):
# -*- coding: utf-8 -*-#导入要使用的Node类from entity.Node import Nodeclass NetworkStructure:#创建整个神经网络的所有节点def create_nodes(num_of_features, hidden_layers):nodes = []nodeIndex = 0 #Neuron的ID#Input layer#Bias Unitnode = Node()node.set_index(nodeIndex)node.set_label("+1")node.set_is_bias_unit(True)nodes.append(node)nodeIndex = nodeIndex + 1print(node.get_label(), "\t", end = '')print("")#Hidden layerfor i in range(len(hidden_layers)):print("Hidden layer creation: ", end = ' ')#Bias Unitnode = Node()node.set_index(nodeIndex)node.set_label("+1")node.set_is_bias_unit(True)nodes.append(node)nodeIndex = nodeIndex + 1print(node.get_label(), "\t", end = '')#创建该layer的Neuronsfor j in range(hidden_layers[i]):#创建该layer内部的Neuronnode = Node()node.set_index(nodeIndex)node.set_label("+1")node.set_is_bias_unit(False)nodes.append(node)nodeIndex = nodeIndex + 1print(node.get_label(), "\t", end = '')print("")#Output layernode = Node()node.set_index(nodeIndex)node.set_label("Output")node.set_is_bias_unit(False)nodes.append(node)nodeIndex = nodeIndex + 1print("Output layer: ", node.get_label())return nodes
