0
点赞
收藏
分享

微信扫一扫

第一节课(系列六):从零起步编码实现多层次神经网络


 

    接下来创建输出层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 Node
class NetworkStructure:

#创建整个神经网络的所有节点
def create_nodes(num_of_features, hidden_layers):
nodes = []
nodeIndex = 0 #Neuron的ID

#Input layer
#Bias Unit

node = Node()

node.set_index(nodeIndex)
node.set_label("+1")
node.set_is_bias_unit(True)
nodes.append(node)
nodeIndex = nodeIndex + 1

print(node.get_label(), "\t", end = '')

print("")

#Hidden layer
for i in range(len(hidden_layers)):
print("Hidden layer creation: ", end = ' ')

#Bias Unit
node = Node()

node.set_index(nodeIndex)
node.set_label("+1")
node.set_is_bias_unit(True)
nodes.append(node)
nodeIndex = nodeIndex + 1

print(node.get_label(), "\t", end = '')

#创建该layer的Neurons
for j in range(hidden_layers[i]):
#创建该layer内部的Neuron
node = Node()

node.set_index(nodeIndex)
node.set_label("+1")
node.set_is_bias_unit(False)
nodes.append(node)
nodeIndex = nodeIndex + 1

print(node.get_label(), "\t", end = '')


print("")

#Output layer
node = Node()

node.set_index(nodeIndex)
node.set_label("Output")
node.set_is_bias_unit(False)
nodes.append(node)
nodeIndex = nodeIndex + 1
print("Output layer: ", node.get_label())

return nodes


举报

相关推荐

0 条评论