Python 如何在keras模型中使用tf操作
我试图在keras模型中使用tensorflow操作,我对机制和Lambda层对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 =
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