python - 向 Keras 层添加一个常量
问题描述
如何向图层添加常量?我原以为以下内容就足够了:
a = tf.keras.layers.Input(shape=(1,))
b = tf.constant(1)
c = tf.keras.layers.Add()([a, b])
但这给出了一个IndexError: tuple index out of range
编辑:
同样的错误发生在函数Subtract
, Maximum
, Minimum
。
解决方案
如果您正在使用 kerasInput
层并tf.constant
作为常规操作的一部分,那么您将按照@Marco 的说明进行操作。如果您想将它们用作模型构建过程的一部分,那么您不能使用tf.*
诸如tf.constant
等之类的操作tf.maximum
。
在模型构建中,您只需要使用图层即可。请在此处查看可用层。如果您想使用一些 tensorflow 操作(tf.constant、tf.maximum 等),那么您需要将它们包装在 keras LAMBDA 层中,如下所示。
a = tf.keras.layers.Input(shape=(1,))
b = tf.keras.layers.Lambda(lambda x:x+tf.constant(1.))(a) #
c = tf.keras.layers.Add()([a, b])
来自 TensorFlow 网站的另一个重要示例Add
层。
input1 = tf.keras.layers.Input(shape=(16,))
x1 = tf.keras.layers.Dense(8, activation='relu')(input1)
input2 = tf.keras.layers.Input(shape=(32,))
x2 = tf.keras.layers.Dense(8, activation='relu')(input2)
# equivalent to `added = tf.keras.layers.add([x1, x2])`
added = tf.keras.layers.Add()([x1, x2])
推荐阅读
- graph - 给定一个无环有向图 G,它有一个源节点 S 和一个节点 V,找到从 S 到叶节点的所有路径,包括 V
- javascript - 即使值存在于数组中,也将值添加到 firestore 数组
- shell - 如何在shell中替换curl命令中的变量?
- android - appwidget-provider 中的 initialLayout 是什么意思?
- nginx - nginx 入口控制器 tls 终止直通
- apache-kafka - 未能提交主管:请求失败,状态码为 500。Apache kafka 到德鲁伊
- python - 关于文件对象的问题:删除、关闭等
- swift - 如何在 ARKit 中使用 2 个平面来推断对象的宽度、长度和高度?
- laravel - tzsk/payu 包给出错误 422“给定数据无效”
- javascript - 在 onclick 函数 next.js 中使用客户端道具