**
在Keras下改网络时遇到AttributeError: ‘Tensor’ object has no attribute ‘_keras_history’
**
直接对输入进行索引操作
错误代码如下:
x = img_input[:,:,:,0:3]
x_art = img_input[:,:,:,3:6]
x_nc = img_input[:,:,:,6:9]
报错如上。
修改:
x = Lambda(lambda img_input:img_input[:,:,:,0:3])(img_input)
x_art = Lambda(lambda img_input: img_input[:,:,:,3:6])(img_input)
x_nc = Lambda(lambda img_input: img_input[:,:,:,6:9])(img_input)
Done!
这是Keras与Tensorflow混用导致报错,Keras中定义的Tensor与TensorFlow给的Tensor类型不同
以下为参考的策略
第一种策略:将tensorflow tensor转keras tensor
1.索引操作转换
#转换前
x = self.x[:, :, :, :]
#转换后
x=Lambda(lambda x: x[:, :, :, :])(self.x)
2.tf操作以及K操作转换
x=Lambda(lambda x: K.round(x))(x)
3.带有非tensor参数的函数转换
offset = Lambda(self.conv,arguments={'co': 2 * N, 'mode': 'offset'})(x)
原文:https://blog.youkuaiyun.com/u011489887/article/details/85170426