gpt4 book ai didi

python - 如何在keras模型中使用tf操作

转载 作者:行者123 更新时间:2023-11-30 22:24:18 24 4
gpt4 key购买 nike

我正在尝试在 keras 模型中使用 tensorflow 操作,但我对该机制以及 Lambda 层对 tf 张量的作用感到非常困惑。

所以这有效:

a = keras.layers.Input(shape=[1, 2], dtype='float', name='a')
s= keras.layers.Lambda(lambda x: tf.transpose(tf.transpose(x)))(a)
model = keras.models.Model(inputs=a, outputs=s)

但这不起作用:

a = keras.layers.Input(shape=[1, 2], dtype='float', name='a')
s = tf.transpose(tf.transpose(a))
s = keras.layers.Lambda(lambda x: x)(s)
model = keras.models.Model(inputs=a, outputs=s)

它说:

AttributeError: 'Tensor' object has no attribute '_keras_history'

那么是否总是需要将 tf 操作打包在一个层内?

问题 2(这就是我提出上一个问题的原因):我们是否必须打包自定义层才能在 keras 中进行矩阵乘法?

谢谢。

最佳答案

问题 1:是的,有必要用一层包装 tf 操作,因为 keras 模型需要某些 tensorflow 操作中未包含的函数/变量。在本例中,_keras_history 是仅通过用层包装操作来生成的属性。

问题 2:矩阵乘法是否有效?您是否考虑过使用带有 use_bias=False 的 keras Dense 层?如果您想使用权重向量常量,可以设置 kernel_initializer={constant}trainable=False

关于python - 如何在keras模型中使用tf操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47860237/

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