tf.reshap()和tf.tail() Contents: [Dimension(None), 1]. Consider casting elements to a supported types
在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.com/tensorflow/tensorflow/issues/7253
高光时刻:
将x.get_shape()[0]换成tf.shape(x)[0]即可解决问题。
一个小问题绊了我很久,要是有其他解决方案欢迎大家指出~