gpt4 book ai didi

python-3.x - 有没有办法在 tensorflow 中施加约束,我可以在此过程中强制执行一些规则吗?

转载 作者:行者123 更新时间:2023-12-04 17:40:16 24 4
gpt4 key购买 nike

有没有办法对 tensorflow 生成的数据进行约束,例如,如果我的模型产生了两个输出,您是否可以对这些输出施加某种约束,例如 a 和 b 中的输出可以预先强制执行(a +b)/2<10?所以模型不会打破这个规则?

提前致谢

最佳答案

如果“由 TensorFlow 生成”是指由神经网络生成,我认为一般情况下是不可能做到的。您无法真正保证神经网络的输出通常不会违反此类硬约束,尤其是在测试时。

你可以这样做:

  • 添加一个损失项,例如 max(0, (a+b)/2 - 10) .这不能保证您的约束不会被违反(NN 的优化是“尽力而为”)。这个损失函数与支持向量机中使用的铰链损失非常相似。
  • 使用适当的激活函数。例如。如果您知道您的数据必须介于 [0, 1] 之间,在输出上使用 sigmoid 激活。
  • 如果输出超出允许范围,则将其“投影”回允许范围。

  • 虽然最后两个选项保证了可行性,但并不总是可以做到这一点,或者不清楚如何做到这一点,更糟糕的是——这将如何影响学习。例如,如果您看到 (a+b)/2 >= 10你会怎么做?你会减吗 b直到满足约束,或两者都折衷 ab不知何故?有时可以定义“最接近的可行点”w.r.t。一些指标,但不是一般的。

    关于python-3.x - 有没有办法在 tensorflow 中施加约束,我可以在此过程中强制执行一些规则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864100/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com