查看数组维度的方法,python列表的维度

  查看数组维度的方法,python列表的维度

  再次使用PythonNumPy和array很难做一些矩阵之间的计算。

  可能不起作用的代码部分如下。

  训练,测试,cv=NP。Array_split(data,3,axis=0)).

  训练输入=训练[ :-1 ]

  测试输入=测试[ :-1 ]

  cv _ inputs=cv [ :-1 ]

  训练输出=训练[:-1]

  测试输出=测试[:-1]

  cv_outputs=cv[:-1]

  打印这些矩阵信息(分别是np.ndim、np.shape和dtype)会得到什么?

  2

  一个

  2

  一个

  2

  一个

  (94936,30 )

  (94936,)

  (94936,30 )

  (94936,)

  (94935,30 )

  (94935,)

  浮动64

  浮动64

  浮动64

  浮动64

  浮动64

  浮动64

  我认为所有*_output数组都缺少一个维度。

  另一个所需的矩阵由以下命令创建。

  新矩阵=神经元层(30,94936))))))))))))))))).

  由neuronLayer定义的类别:

  类新闻层():

  def __init__(自身,神经元,神经元_输入) :

  self . weights=2 * NP . random . random((神经元_输入,神经元))- 1

  这是最终输出:

  输出层1=自身。_ _ sigmoid (NP.dot)输入,自身层1.weights))

  值错误:形状(94936,30)和)94936,30)未对齐:30(dim1)!=94936(dim0)

  Python明确告诉我矩阵没有加起来,但我不知道问题出在哪里。

  有小费吗?

  PS:将完整的代码粘贴到。

  解决办法

  1=神经元层(30,94936) # 29个神经元,有227908个输入

  第2层=神经元层(1,30) # 1神经元,没有先前的29个输入

  NueronLayer是在哪里成立的?

  self . weights=2 * NP . random . random((神经元_输入,神经元))- 1

  两个权重分别为[94936,30]和[30,1]。

  这条线没有任何意义。我很惊讶这没有任何问题

  第1层错误=第2层dot(self . layer 2 . weights . NP . transit))。

  不知道你要不要NP?转置(自我。layer2.weights)或自身

  但它可能不在那里。列车第一次被称为think (94936,30)输入。

  输出层1=自身。_ _ sigmoid (NP.dot)输入,自身层1.weights))

  输出层2=自身。_ _ sigmoid (NP.dot)输出layer1,self.layer2.weights)

  因此,np.dot2的两个(94936,30),94936,30)序列尝试执行A运算。那些观点是不相容的。您可以交替生成(94936,94936)数组或(30,30)数组。一个太大了。(30,30)与第二层重量兼容。

  NP.dot(inputs.t,自身层1.weights)).

  有一个工作机会。

  NP.dot(outputlayer1,self.layer2.weights).

  (30,30 ) with (30,1 )=(30,1)))).

  但是你呢?

  训练_输出-输出层2

  不管train_outputs是(94936,)还是(94936,1),都有问题。

  在计算过程中,我们必须确保数组的形状正确流动。不要一开始就检查它们。和内部检查。另外,你需要知道每一步应该是什么形状。

  用更少的输入和层数,比如10个样本和3个函数,就很容易开发和测试这个代码。这显示了值和形状。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: