AttributeError: ‘Tensor‘ object has no attribute ‘_keras_history‘报错解决

注意:Layers 输入的张量也不能包含切片! Layers 输入的张量也不能包含切片!Layers 输入的张量也不能包含切片!
AttributeError: ‘Tensor‘ object has no attribute ‘_keras_history‘报错解决

今天编码时:

错误是这样的:AttributeError: 'Tensor' object has no attribute '_keras_history'

百度告诉你:用keras.Layers.Lambda()

这种方法是没错的,然后看自己写的代码,没问题啊,自己就是这么写的啊???各种找错。下面分享一下个人调试定位错误经验,教大家使用 Lambda后报错继续定位错误。

一般报错误是 keras 这里的代码:

File "/home/wang/anaconda3/envs/py36/lib/python3.6/site-packages/keras/engine/topology.py", line 1675, in build_map_of_graph
    layer, node_index, tensor_index = tensor._keras_history

找到这个代码,将这个tensor打印出来,看它的说明以及shape,大概就知道是什么错了。

例如我在这里:

Tensor("strided_slice:0", shape=(?, 70, 14, 14), dtype=float32)

看了这个就知道是张量切片错误。结合它的形状,我找到如下代码:

f0 = KL.Lambda(lambda p: tf.multiply(p[0], tf.expand_dims(p[1], axis=-1)), name="score_get_f0")([y, binary_region[..., 0]])

emmm! 原来在搭建网络时,括号里传入的张量也不能用索引,必须放到Lambda处理,改成以下代码:

f0 = KL.Lambda(lambda p: tf.multiply(p[0], tf.expand_dims(p[1][..., 0], axis=-1)), name="score_get_f0")([y, binary_region])

AttributeError: ‘Tensor‘ object has no attribute ‘_keras_history‘报错解决

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年3月28日
下一篇 2022年3月29日

相关推荐