Python 简单神经网络-如何存储权重?

Python 简单神经网络-如何存储权重?,python,neural-network,Python,Neural Network,我最近开始学习Python,并试图实现我的第一个神经网络。我的目标是编写一个函数,生成具有可变层和节点数量的神经网络。所有必要的信息都存储在layerStructure中(例如:第一层有四个节点,第三层有三个节点) 上面的代码生成以下输出: [[0.6067148 0.66445212 0.54061231 0.19334004] [0.22385007 0.8391435 0.73625366 0.86343394]] [[0.61794333 0.9114799 ] [0.10626

我最近开始学习Python,并试图实现我的第一个神经网络。我的目标是编写一个函数,生成具有可变层和节点数量的神经网络。所有必要的信息都存储在layerStructure中(例如:第一层有四个节点,第三层有三个节点)

上面的代码生成以下输出:

[[0.6067148  0.66445212 0.54061231 0.19334004]
 [0.22385007 0.8391435  0.73625366 0.86343394]]
[[0.61794333 0.9114799 ]
 [0.10626486 0.95307027]
 [0.50567023 0.57246852]]

我的第一次尝试是将每个随机权重矩阵存储在一个名为weightMatrix_arr的容器数组中。但是,由于各个矩阵的形状不同,我无法使用np.append()将它们全部存储在矩阵容器中。如何保存这些矩阵以便在反向传播期间访问它们?

您可以使用
列表而不是
np.array

#生成空重量列表容器
权重矩阵=[]
#初始化随机权矩阵
对于范围内的ii(len(层结构[0:-1]):
randmatrix=np.random.rand(layerStructure[ii+1],layerStructure[ii])
加权矩阵。追加(随机矩阵)
打印(randmatrix)
否则,您可以将
权重矩阵\u arr dtype
设置为
对象
: :

#生成空重量列表容器
权重矩阵=np.array([],dtype=object)
#初始化随机权矩阵
对于范围内的ii(len(层结构[0:-1]):
randmatrix=np.random.rand(layerStructure[ii+1],layerStructure[ii])
WeightMatrix=np.append(WeightMatrix,randmatrix)
请注意,在两种情况下,如果不访问图层矩阵,则无法访问内层索引:

权重矩阵[层,0,3]#错误
权重矩阵[层][0,3]#确定

如果内存消耗不是问题,您可以将所有层塑造为最长的层,只需根据
层结构值忽略额外的单元即可

[[0.6067148  0.66445212 0.54061231 0.19334004]
 [0.22385007 0.8391435  0.73625366 0.86343394]]
[[0.61794333 0.9114799 ]
 [0.10626486 0.95307027]
 [0.50567023 0.57246852]]