如何在Theano中实施产品和?在数学上,这相当于乘以前一层的所有(无权重)。我认为我的代码适用于批量大小为1但我希望它适用于批处理。
这是我尝试过的。注意,我不知道我在做什么。
def prod_and(result, k):
elif k[0][0] == 7:
return theano.tensor.stack([
[result[i][0] * result[i][1]*\
result[i][2] * result[i][3]*\
result[i][4] * result[i][5]*\
result[i][6]] for i in np.arange(1)
])
class ProdAnd(layers.BaseLayer):
# Begin by initializing.
def initialize(self,):
super(ProdAnd, self).initialize()
# Create output from input.
def output(self, *input_values):
return prod_and(input_values[0], self.input_shape)
我认为我的问题源于我无法理解neupy类型之间的关系(例如什么是连接neupy层{layers.0})。此外,我不认为我理解Theano如何以不同于随机的方式实现批处理。
理想情况下,最佳答案将包括对产品和功能的修复,以及对此特定示例中输入和输出如何工作的解释。
使用它的一个例子是模糊神经网络,它利用Takagi-Sugeno风格的模糊推理(见第5层)。
我试图让问题变得简单,所以我将其分解为简单地将前一层的所有输入相乘。
等式由下式给出:
其中x是输入层,y是输出层。区分每个变量会使另一个变量与前一层保持一致(因此计算起来并不困难)。