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

Python 如何在keras模型中使用tf操作,python,tensorflow,keras,matrix-multiplication,attributeerror,Python,Tensorflow,Keras,Matrix Multiplication,Attributeerror,我试图在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模型中使用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 ops中不包含的某些函数/变量。在这种情况下,
\u keras\u history
是一个仅通过使用层包装op而生成的属性

问题2:矩阵乘法tra是否考虑过使用keras
稠密层,使用
use_bias=False
?如果要为权重向量使用常量,可以设置
kernel\u初始值设定项={constant}
,以及
trainable=False