keras中的Tensorflow层

时间:2018-03-15 13:39:39

标签: tensorflow keras

我们如何在keras中使用来自tf.contrib.layers的图层?

我尝试在其他keras图层中混合使用tf图层。

input = Input(shape=state_shape)
conv = Conv2D(64, (6, 6), strides=(1, 1), activation='relu')(input)
spatial_softmax = tf.contrib.layers.spatial_softmax(conv, name='spatial_softmax', data_format='NHWC')
fc = Dense(128, activation='relu')(spatial_softmax)
fc = Dense(128, activation='relu')(fc)
output = Dense(action_size, activation='softmax')(fc)

Model(inputs=input, outputs=output)

但是当我运行代码时,我收到以下错误

AttributeError: 'Tensor' object has no attribute '_keras_history'

有什么想法吗?

谢谢!

编辑:它与here的问题不同,我要求的是一个具有可训练权重而不是确定性图层的图层。渐变是否会支持到图层?

1 个答案:

答案 0 :(得分:0)

我相信你需要把它放在Lambda层中:

spatial_softmax = Lambda(lambda x: spatial_softmax(x, name='spatial_softmax',
                         data_format='NHWC'))(conv)