Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras神经网络中的输入节点_Python_Machine Learning_Neural Network_Keras - Fatal编程技术网

Python Keras神经网络中的输入节点

Python Keras神经网络中的输入节点,python,machine-learning,neural-network,keras,Python,Machine Learning,Neural Network,Keras,我正试图创建一个基于虹膜数据集的神经网络。我有四个维度的输入X=dataset[:,0:4].astype(float)。然后,我创建了一个具有四个节点的神经网络 model = Sequential() model.add(Dense(4, input_dim=4, init='normal', activation='relu')) model.add(Dense(3, init='normal', activation='sigmoid')) model.compile(loss='cat

我正试图创建一个基于虹膜数据集的神经网络。我有四个维度的输入
X=dataset[:,0:4].astype(float)
。然后,我创建了一个具有四个节点的神经网络

model = Sequential()
model.add(Dense(4, input_dim=4, init='normal', activation='relu'))
model.add(Dense(3, init='normal', activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
据我所知,我将每个维度传递给单独的节点。四维-四个节点。当我创建一个有8个输入节点的神经网络时,它是如何工作的?性能仍然与使用4个节点时相同

model = Sequential()
model.add(Dense(8, input_dim=4, init='normal', activation='relu'))
model.add(Dense(3, init='normal', activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

您上次激活时出错。使用
softmax
而不是
sigmoid
并再次运行

替换

model.add(Dense(3, init='normal', activation='sigmoid'))


要回答您的主要问题“这是如何工作的?”:

从概念的角度来看,您最初创建的是一个具有3个层的完全连接或密集的神经网络:具有4个节点的输入层、具有4个节点的隐藏层和具有3个节点的输出层。输入层中的每个节点与隐藏层中的每个节点都有连接,与输出层中的隐藏节点相同

在第二个示例中,您刚刚将隐藏层中的节点数从4增加到8。一个更大的网络可能是好的,因为它可以被训练“查找”数据中的更多内容。但层太大,可能会过度贴合;这意味着网络记住了太多的训练数据,而实际上它只需要对训练数据有一个大致的了解,这样它仍然可以识别稍微不同的数据,即测试数据

您可能没有看到性能提高的原因可能是过度装配或您的激活功能;在隐藏层中尝试relu以外的函数。在尝试了几个不同的函数组合后,如果没有看到任何改进,则可能是拟合过度


希望这能有所帮助。

您可以将神经元的数量设置为任意数量,它仍然可以工作
model.add(Dense(3, init='normal', activation='softmax'))