问题描述:
output.shape为(?, 8, 257, 1)
output=K.expand_dims(output, axis=2)
output.shape为(?, 8, 1,257, 1)
经过维度扩展之后,
model = Model(inputs=(model_input1,model_input2), outputs=output)报错
AttributeError: 'Tensor' object has no attribute '_keras_history'
原因:
keras/tensorflow数据结构混用
在keras中,每个tensorflow operation 需要用一下三种方式封装:
- Using
functions,keras.backend
-
layers,Lambda
- Designated
functions with the same behavior.keras
解决:
使用keras中的Reshape层来替换expand_dims来进行维度变换,比如
from keras import layers
from keras import backend as K
output1=K.expand_dims(output1, axis=2)
output1=layers.Reshape((output1.get_shape().as_list()[1],1,output1.get_shape().as_list()[2],output1.get_shape().as_list()[3]))(output1)