创建多个神经网络阵列

2024-06-16 13:57:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习python,但是我的头脑还不太清楚如何为神经网络创建多个数组。我得到的示例往往是围绕一个神经数组示例展开的,我想创建多个。下面是一个神经网络,我如何扩展它在numpy,所以它的许多感谢预付款.Im尝试创建一组神经网络阵列,每个阵列都有自己的输入隐藏层和输出层8)

import numpy as np

epochs = 10000         # Number of iterations
inputLayerSize, hiddenLayerSize, outputLayerSize = 2,2,1


X = np.array([[0,0], [0,1], [1,0], [1,1]])
Y = np.array([ [0],   [1],   [1],   [0]])

def sigmoid (x): return 1/(1 + np.exp(-x))      # activation function
def sigmoid_(x): return x * (1 - x)             # derivative of sigmoid
                                                # weights on layer inputs
Wh = np.random.uniform(size=(inputLayerSize, hiddenLayerSize))
Wz = np.random.uniform(size=(hiddenLayerSize,outputLayerSize))


for i in range(epochs):

    H = sigmoid(np.dot(X, Wh))                  # hidden layer results
    Z = sigmoid(np.dot(H, Wz))                  # output layer results
    E = Y - Z                                   # how much we missed #(error)
    dZ = E * sigmoid_(Z)                        # delta Z
    dH = dZ.dot(Wz.T) * sigmoid_(H)             # delta H
    Wz +=  H.T.dot(dZ)                          # update output layer #weights
    Wh +=  X.T.dot(dH)                          # update hidden layer #weights

print("------")                # what have we learnt?
#Walk-through
print(Z)

Tags: ofnumpylayer示例np神经网络数组dot
1条回答
网友
1楼 · 发布于 2024-06-16 13:57:02

你为什么不把整个网络写在一个函数里,把变量作为参数传递,这样你就可以拥有你所需要的任意多的网络。你知道吗

您的代码中有一个错误:

def sigmoid (x): return 1/(1 + np.exp(-x))      # activation function
def sigmoid_(x): return sigmoid(x) * (1 - sigmoid(x)) # derivative of sigmoid
                                            # weights on layer inputs

相关问题 更多 >