Python-交叉数组乘法

Python-交叉数组乘法,python,numpy,neural-network,Python,Numpy,Neural Network,我正在开发一个基于神经网络原理的模型。 我有一个输入层、权重层和一个输出层: [1,2] -- [ [1,1] , [1,1] ] --> [3,3] 我的问题是Python是否有一种简单的方法(使用numpy)来计算输出层,而不必执行循环和循环 目前的实施是: for i in range(0,number_of_out_neurons): out_neuron_adder_toWrap = weights[i] * all_input_layer out_neuro

我正在开发一个基于神经网络原理的模型。 我有一个输入层、权重层和一个输出层:

[1,2] -- [ [1,1] , [1,1] ] --> [3,3]

我的问题是Python是否有一种简单的方法(使用numpy)来计算输出层,而不必执行循环和循环

目前的实施是:

for i in range(0,number_of_out_neurons):
    out_neuron_adder_toWrap = weights[i] * all_input_layer
    out_neuron[i] = sum(out_neuron_adder)         <-- wrapping
对于范围内的i(0,超出神经元的数目):
out\u neuron\u adder\u toWrap=权重[i]*所有输入层

out\u neuron[i]=sum(out\u neuron\u加法器)您可以使用
numpy.dot

In [1]: import numpy as np
In [2]: a
Out[2]: array([1, 2])
In [3]: b
Out[3]: 
array([[1, 1],
       [1, 1]])
In [4]: np.dot(a,b)
Out[4]: array([3, 3])

下面是关于
numpy.dot
的更多信息,您可以使用
numpy.dot

In [1]: import numpy as np
In [2]: a
Out[2]: array([1, 2])
In [3]: b
Out[3]: 
array([[1, 1],
       [1, 1]])
In [4]: np.dot(a,b)
Out[4]: array([3, 3])

这里有更多关于numpy.dot的信息,你能实现loopy版本吗,因此,我们可以更好地了解您的想法,并帮助我们交叉检查可能建议的任何矢量化方法?考虑到这只是每个
输入的加法
乘以每个
权重
,您可以只做
点积
。但这仅在输入维度与权重维度一起工作时有效。您是否也可以添加它们的形状信息(输入数组的形状)?最好添加一个带有数字数据和最终输出的最小代表性示例。您能否实现循环版本,因此,我们可以更好地了解您的想法,并帮助我们交叉检查可能建议的任何矢量化方法?考虑到这只是每个
输入的加法
乘以每个
权重
,您可以只做
点积
。但这仅在输入维度与权重维度一起工作时有效。您是否也可以添加它们的形状信息(输入数组的形状)?最好是添加一个具有代表性的最小示例,包含数字数据和最终输出。我也这么想。唯一的问题是,如果@hugodecasta的维度权重不相等,即对于相同的输入/输出形状,他有3个输出和2个输入,但对于类似的3/2,它会像预期的那样失败,但我认为应该很容易修复规则已经在
numpy.dot
中实现。我们不想担心这一点。是的,但问题仍然存在。
[1,2,3]点[[1,1,1],[1,1,1]]
不正确。。。因为这两个向量没有对齐,我的sory小姐没有使用
[1,2,3]点[[1,1,1],[1,1,1]]
我们必须使用
[1,1,1],[1,1,1]]DOT[1,2,3]
我也在想同样的事情。唯一的问题是,如果@hugodecasta的维度权重不相等,即对于相同的输入/输出形状,他有3个输出和2个输入,但对于类似的3/2,它会像预期的那样失败,但我认为应该很容易修复规则已经在
numpy.dot
中实现。我们不想担心这一点。是的,但问题仍然存在。
[1,2,3]点[[1,1,1],[1,1,1]]
不正确。。。因为这两个向量没有对齐,我的sory小姐没有使用
[1,2,3]点[[1,1,1],[1,1,1]]
我们必须使用
[1,1,1],[1,1,1]]点[1,2,3]
In [1]: import numpy as np
In [2]: a
Out[2]: array([1, 2])
In [3]: b
Out[3]: 
array([[1, 1],
       [1, 1]])
In [4]: np.dot(a,b)
Out[4]: array([3, 3])