如何在Neupy或Theano中实现一个用于Neupy的自定义激活函数(RBF核,通过梯度下降调整均值和方差)。你知道吗
{快速背景:梯度下降适用于网络中的每个参数。我想创建一个专门的特性空间,其中包含优化的特性参数,以便Neupy}
我认为我的问题在于参数的创建、它们的大小以及它们之间的联系。你知道吗
感兴趣的主要功能。你知道吗
class RBF(layers.ActivationLayer):
def initialize(self):
super(RBF, self).initialize()
self.add_parameter(name='mean', shape=(1,),
value=init.Normal(), trainable=True)
self.add_parameter(name='std_dev', shape=(1,),
value=init.Normal(), trainable=True)
def output(self, input_value):
return rbf(input_value, self.parameters)
def rbf(input_value, parameters):
K = _outer_substract(input_value, parameters['mean'])
return np.exp(- np.linalg.norm(K)/parameters['std_dev'])
def _outer_substract(x, y):
return (x - y.T).T
帮助将不胜感激,因为这将提供如何定制neupy网络的深刻见解。文档可能需要在某些领域进行一些工作,至少可以说。。。你知道吗
当图层更改输入变量的形状时,它必须将更改通知后续图层。对于这种情况,它必须具有定制的
output_shape
属性。例如:如果你在终端上运行它,你会看到它是工作的
在您的示例中,我可以看到一些问题:
rbf
函数不返回ano表达式。它应该在函数编译期间失败np.linalg.norm
这样的函数将返回标量。你知道吗下面的解决方案应该适合您
虽然itdxer充分回答了这个问题,但我想补充一下这个问题的精确解。你知道吗
建筑创作
激活函数
RBF类
培训
如果你对培训感兴趣。这很简单
这是用适当的输入和目标进行编译的,平均值和方差在元素的基础上进行更新。你知道吗
相关问题 更多 >
编程相关推荐