keras AttributeError: 'NoneType' object has no attribute '_inbound_nodes'

“#”’keras AttributeError: ‘NoneType’ object has no attribute ‘_inbound_nodes’

在写keras 搭建网络的时候
concatenated是一个(?,100,60)维度的tensor,下面卷积层输入需要时4Dtensor

concatenated是一个(?,100,60)维度的tensor,下面卷积层输入需要时4Dtensor]
所以中间需要给tensor增加一个维度变成(?,100,60,1),但是keras中使用numpy进行维度变换会导致结果是一个numpy类型的数据,不能传递到下一层网络中,网上搜的numpy转tensor的方法都需要使用tensorflow。如果使用tensorflow中的tf.expand_dims也会在下面这个地方报错报错:AttributeError: ‘NoneType’ object has no attribute ‘_inbound_nodes’

网上搜说是keras中不能直接用tensorflow的一些什么定义函数。所以失败。
还试着在两层之间加一个backend.expand_dims还是出现上面错误。我就一直误以为是keras中用了tf相关的问题。
后来继续网上找答案,发现了问题所在(感谢这个答案:https://stackoverflow.com/questions/44627977/keras-multi-inputs-attributeerror-nonetype-object-has-no-attribute-inbound-n),
是因为中间keras.backend.xxx不是layer。中间需要添加layer后面model的时候才可以成功。于是就用了keras中的lambda实现了增加tensor增加维度。
写了一个增加维度的方法
在两层之间使用这个增加tensor维度
第一次写,为了记录错误更加进步,如有问题错误请各位大佬们指正。感谢。

你可能感兴趣的:(keras)