Python 3.x 有没有办法在张量流中施加约束,我可以沿途执行一些规则吗?
有没有办法对张量流生成的数据进行约束,例如,如果我的模型生成了两个输出,你可以对这些输出施加某种约束,比如a和b,其中输出可以预执行类似(a+b)/2的内容,如果“由张量流生成”是指由神经网络生成,我认为一般来说不可能做到这一点。一般来说,你不能保证神经网络的输出不会违反这样的硬约束,尤其是在测试时 以下是您可以做的:Python 3.x 有没有办法在张量流中施加约束,我可以沿途执行一些规则吗?,python-3.x,tensorflow,constraints,Python 3.x,Tensorflow,Constraints,有没有办法对张量流生成的数据进行约束,例如,如果我的模型生成了两个输出,你可以对这些输出施加某种约束,比如a和b,其中输出可以预执行类似(a+b)/2的内容,如果“由张量流生成”是指由神经网络生成,我认为一般来说不可能做到这一点。一般来说,你不能保证神经网络的输出不会违反这样的硬约束,尤其是在测试时 以下是您可以做的: 添加一个损失项,类似于max(0,(a+b)/2-10)。这并不能保证您的约束不会被违反(NN的优化是“尽力而为”)。这个损失函数非常类似于支持向量机中使用的铰链损失 使用适当
- 添加一个损失项,类似于
。这并不能保证您的约束不会被违反(NN的优化是“尽力而为”)。这个损失函数非常类似于支持向量机中使用的铰链损失max(0,(a+b)/2-10)
- 使用适当的激活功能。例如,如果您知道您的数据必须介于
之间,请在输出上使用sigmoid激活[0,1]
- “项目”将输出返回到允许的范围(如果超出范围)
(a+b)/2>=10
,您会怎么做?您会减少b
,直到满足约束条件,还是以某种方式权衡a
和b
?有时,可以定义“最近可行点”w.r.t.某些度量,但一般不确定