在tensorflow/Keras中batch_size是变化的且构图时初始化为None而造成的Cannot convert unknown dimension (None) 或者Contents: [Dimension(None), 1]. Consider casting elements to a supported types报错的解决办法。

我在Kears构图过程中中想用

tf.tile(self.kernel, [input_layer.get_shape()[0], 1])
来完成对向量扩展到矩阵。其中input_layer是上一层Layer,input_layer.get_shape()[0]则表示batch_size。

这一句一直报错Contents: [Dimension(None), 1]. Consider casting elements to a supported types ,我知道原因是因为batch_size是由传过来数据数量决定的,不是一个定值。

根据这条报错google了很久没有找到解决办法。

后来我想到tf.reshape()使用时也见到过connot convert unknown dimension (None)的报错,原因应该也是一样。于是换了关键词,

在tf.reshape()的unknown dimension找到了解决的方法,网址:

 https://github/tensorflow/tensorflow/issues/7253

高光时刻:

将x.get_shape()[0]换成tf.shape(x)[0]即可解决问题。

一个小问题绊了我很久,要是有其他解决方案欢迎大家指出~

更多推荐

tf.reshap()和tf.tail() Contents: [Dimension(None), 1]. Consider casting elements