关于Keras报错AttributeError: 'NoneType' object has no attribute '_inbound_nodes'的解决方法

之前在用Keras搭建网络时需要计算孪生神经网络的输出的绝对值,在编写代码时直接用了Keras的backend的函数:

diff_fea_1 = K.abs(Subtract()([feature_1_X, feature_1_Y]))  # (B, H, W, 16)

但是却碰到了如下的报错:

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

这是因为在Keras的网络中一切都是要用层来表示的,因此需要利用Lambda自定义一个Abs_Layer层:

 def Abs_layer(self, tensor):
    return Lambda(K.abs)(tensor)

使用自定义的层计算绝对值后问题解决。
如果需要在Keras的网络中进行像Tensorflow中的一些函数操作,都需要通过自定义的Lambda层完成。比如需要对Tensor的维度进行扩展,不能直接使用backend中的expand_dims函数,而是要去定义一个Lambda层:

 def Expand_Dim_Layer(self, tensor):
    def expand_dim(tensor):
        return K.expand_dims(tensor, axis=1)
    return Lambda(expand_dim)(tensor)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值