将自定义函数嵌入神经网络
Embedding Custom Functions into NN
我目前在问自己如何构建具有几个额外功能的模型。
我有一个自定义函数实体,我想将它们作为层嵌入到我的模型 (NN) 中。
为此,我正在使用 TF 2.0。但我目前正在努力做到这一点。
我找到的只是关于激活函数的答案,但这不是我要找的。
自定义函数 returns 类似于 a+b 或任何其他算法(矩阵乘法等)
我们可以说的是,我有一层到另一层,并且想在这两层之间嵌入我的自定义函数,如下所示:
我要说的是从一层到另一层的激活函数是自定义函数。但是,如果我的自定义函数需要两个输入怎么办?或者我有两个函数想在将输入传递给下一个函数之前处理我的输入?
解决该问题的另一种方法:
假设我有我的自定义函数 cm*
和我的图层 l*
;
我所做的是为我想放在两个自定义函数之间的每一层构建一个模型
cm1 -> model(l1) -> cm2 -> model(l2,l3) -> cm3 -> cm4 -> model(l4) -> ....
但是为每个轨迹建立模型不是很愚蠢吗?
那么损失呢?残余连接层的反向传播不同于将许多模型和函数分层在一起。
还是我错了?
我不确定 TF 2.0,但在 Keras 中,您可以构建自己的自定义层,这些层可以通过覆盖层 class 来接收多个输入。有关详细信息,请参阅 https://keras.io/guides/making_new_layers_and_models_via_subclassing/。 link 没有解释如何将多个输入传递给层,但您所要做的就是使用输入列表调用层并将它们解压缩到调用函数中,如下所示:
class MyCustomLayer(tf.keras.Layer):
def __init__(self):
# your code here
pass
def call(self, inputs): # example call: MyCustomLayer()([1, 2])
x, y = inputs
# your code here
output = x + y # placeholder
return output
我目前在问自己如何构建具有几个额外功能的模型。 我有一个自定义函数实体,我想将它们作为层嵌入到我的模型 (NN) 中。 为此,我正在使用 TF 2.0。但我目前正在努力做到这一点。 我找到的只是关于激活函数的答案,但这不是我要找的。
自定义函数 returns 类似于 a+b 或任何其他算法(矩阵乘法等) 我们可以说的是,我有一层到另一层,并且想在这两层之间嵌入我的自定义函数,如下所示:
我要说的是从一层到另一层的激活函数是自定义函数。但是,如果我的自定义函数需要两个输入怎么办?或者我有两个函数想在将输入传递给下一个函数之前处理我的输入?
解决该问题的另一种方法:
假设我有我的自定义函数 cm*
和我的图层 l*
;
我所做的是为我想放在两个自定义函数之间的每一层构建一个模型
cm1 -> model(l1) -> cm2 -> model(l2,l3) -> cm3 -> cm4 -> model(l4) -> ....
但是为每个轨迹建立模型不是很愚蠢吗? 那么损失呢?残余连接层的反向传播不同于将许多模型和函数分层在一起。 还是我错了?
我不确定 TF 2.0,但在 Keras 中,您可以构建自己的自定义层,这些层可以通过覆盖层 class 来接收多个输入。有关详细信息,请参阅 https://keras.io/guides/making_new_layers_and_models_via_subclassing/。 link 没有解释如何将多个输入传递给层,但您所要做的就是使用输入列表调用层并将它们解压缩到调用函数中,如下所示:
class MyCustomLayer(tf.keras.Layer):
def __init__(self):
# your code here
pass
def call(self, inputs): # example call: MyCustomLayer()([1, 2])
x, y = inputs
# your code here
output = x + y # placeholder
return output