Python 如何在keras中将重量限制在一定范围内
我正在使用Python 如何在keras中将重量限制在一定范围内,python,keras,Python,Keras,我正在使用keras制作一个简单的3层MLP。我想将学习的MLP的权重限制在一个范围内。例如,模型拟合后,所有权重和偏差都在范围(-1,1)内。 我该怎么做? 谢谢。可以使用约束模块来实现这一点。这适用于权重(kernel\u约束),如下所示: model.add(Dense(500, kernel_constraint=unit_norm())) 可以使用约束模块来实现这一点。这适用于权重(kernel\u约束),如下所示: model.add(Dense(500, kernel_const
keras
制作一个简单的3层MLP
。我想将学习的MLP
的权重限制在一个范围内。例如,模型拟合后,所有权重和偏差都在范围(-1,1)内。
我该怎么做?
谢谢。可以使用
约束
模块来实现这一点。这适用于权重(kernel\u约束
),如下所示:
model.add(Dense(500, kernel_constraint=unit_norm()))
可以使用
约束
模块来实现这一点。这适用于权重(kernel\u约束
),如下所示:
model.add(Dense(500, kernel_constraint=unit_norm()))
为此使用
约束
没有标准的约束,所以我们需要创建一个自定义约束。unit_norm
是关于“张量norm”,而不是关于“单个权重值”
在接受约束的任何层中,都应该有一个kernel\u约束
和一个bias\u约束
参数。或者一些非常相似的名字
Dense(units, kernel_constraint=Between(), bias_constraint=Between())
加载模式:
为此使用约束
没有标准的约束,所以我们需要创建一个自定义约束。unit_norm
是关于“张量norm”,而不是关于“单个权重值”
在接受约束的任何层中,都应该有一个kernel\u约束
和一个bias\u约束
参数。或者一些非常相似的名字
Dense(units, kernel_constraint=Between(), bias_constraint=Between())
加载模式:
这个答案几乎是正确的,但这是关于“张量范数”。它使用了一个带平方根的欧几里德范数:这个答案几乎是正确的,但这是一个“张量范数”。它使用欧几里德范数和平方根:谢谢。这是可行的,但在保存我的模型时有一个问题。保存模型后,我无法加载模型,因为之间的未知。另一个问题是我的模型每次都不合适。你有解决办法吗?谢谢。这是可行的,但在保存我的模型时有一个问题。保存模型后,我无法加载模型,因为之间的未知。另一个问题是我的模型每次都不合适。你有解决办法吗?