如何解决通过添加新的权重参数自定义损失函数/添加新的lambda层来实现Keras自定义预测值
我正在尝试将我的预测值构造为:
y_hat = alpha * output_1 + (1-alpha) * output_2
“ output_1”和“ output_2”都是从前一层获得的n * 1向量,而alpha是标量。但是问题是我不想自己修复Alpha,而是希望Alpha能够自己学习。
示例代码为
def custom_lambda_layer_1(input1):
return output1
def custom_lambda_layer_2(input2):
return output2
lambda_layer_1 = Lambda(custom_lambda_layer_1)(prevIoUs1) #prevIoUs1 is the output from prevIoUs layers
lambda_layer_2 = Lambda(custom_lambda_layer_2)(prevIoUs2)
### here is what I want to do
def y_hat(parameter):
return parameter[0] * alpha + parameter[1] * (1-alpha)
lambda_layer = Lambda(y_hat)([lambda_layer_1,lambda_layer_2])
### but I don't kNow where to write alpha as input/ output
我不知道如何修改代码,以便可以将alpha视为可以更新的参数。我不确定是否也可以通过这种方式学习alpha。
或者,我可以让
alpha_new = alpha_odd - learn_rate * gradient_of_alpha
但是我也不知道该怎么插入?我读了其他答案,但它们的“ alpha”不是一个可以由人更改的固定值,就是来自先前各层的输出。但是在这里,“ alpha”基本上是连接两个输出部分的权重参数。最初的问题是我不知道如何为这两个输出分配权重,因此我希望自己可以对其进行学习/优化。
任何想法将不胜感激!!谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。