Tensorflow 如何像决策树一样在keras函数API中插入逻辑语句?

Tensorflow 如何像决策树一样在keras函数API中插入逻辑语句?,tensorflow,keras,Tensorflow,Keras,假设以下网络 #sub model 1 i= Input() x=Dense(i) x=Dense(x) #output [N times 1] array 但是,在这一步中,应用一个函数 f([N times 1]) #return True or False 这样,如果f()返回1,那么 #sub model 2 y1=concentrate(Input, x) # i.e. Input and [N times 1] y1=Dense(y1) # notic

假设以下网络

#sub model 1
i= Input()
x=Dense(i)
x=Dense(x)  #output [N times 1] array
但是,在这一步中,应用一个函数

f([N times 1]) #return True or False
这样,如果f()返回1,那么

#sub model 2
y1=concentrate(Input, x) # i.e. Input and [N times 1] 
y1=Dense(y1)            
# notice that it's this dependence of the result from the previous network, 
#i.e. [N times 1] made the importance of training the model as a whole. 
如果f()返回0,则

#sub model 3
y1=Dense(Input)
y1=Dense(y1)
类似于决策树,但具有用户指定为函数f()的逻辑

问题:

  • 如何建立这样一个网络并作为一个整体进行培训

  • 已解决,保留在此处,以便在培训过程中主要描述逻辑)假设达到1,但如果想要将特定的培训模型附加到子模型1,即在培训开始时将
    子模型1=模型(i,x)
    中的培训参数用于网络。如何实现这样的“模块化培训”

  • 问题1和问题2背后的逻辑解释:人们可能会想,为什么不建立3个神经网络,然后在训练后定义一个函数来连接它们?如前所述,子模型2中的依赖性是此类原因之一。然而,训练子模块的个性,然后将它们融合到一个完整的模型中,将它们训练在一起,可能会有所帮助。这可能会以平方根的顺序节省所需的训练时间,从而解决问题2


    关于问题1的更新:这样的解决方案之一可能是。但是,这需要修改所有使用的层和最终层。有更好的方法吗?

    我不明白,您需要在运行时计算条件还是仅在实例化模型时计算条件?@BestDogeStackoverflow基本上是的。