使用来自较大图像的补丁作为输入暗淡到Keras CNN会产生错误' Tensor'对象没有属性' _keras_history' *

时间:2017-11-17 03:56:22

标签: tensorflow keras

我正在尝试使用keras创建一个CNN来处理来自600x600的更大图像的20x20补丁。

当我尝试运行下面的代码时,我收到错误 AttributeError:' Tensor'对象没有属性' _keras_history'

以下代码仅用于查看总共900个中的第一个20 x 20补丁,我试图在尝试循环整个输入图像之前使其正常运行。

我不明白为什么它会返回错误,因为每个图层都是使用keras图层生成的,而我还没有对张量应用任何其他操作?

我正在使用tensorflow 1.3和keras 2.0.6。

nb_filters=16

input_image=Input(shape=(600,600,3))
Input_1R=Reshape((900,20,20,3))(input_image)
conv1=Convolution2D(nb_filters,(5,5),activation='relu',padding='valid')(Input_1R[:,0])
conv4=Convolution2D(1,(6,6),activation='hard_sigmoid',padding='same')(conv1)
dense6=Dense(1)(conv4)
output_dense=dense6
model = Model(inputs=input_image, outputs=output_dense)   

1 个答案:

答案 0 :(得分:1)

发生错误是因为切片操作Input_1R[:,0]未在Keras层中执行。 您可以将其包装到Lambda图层中:

sliced = Lambda(lambda x: x[:, 0])(Input_1R)
conv1 = Convolution2D(nb_filters, (5,5), activation='relu', padding='valid')(sliced)