Keras - 投掷错误,我的输入形状是3维,当它不是

时间:2017-12-23 02:22:14

标签: tensorflow machine-learning neural-network keras theano

我的程序采用CSV文件,其中前6行是输入。

定义我正在使用的输入时:

inputs = Input(shape=(2697, 6))

其中2697是批量大小,6是输入大小。我知道Input(shape=(batch-size, input-size))是正确的。

然而,当我运行它时,我收到一条消息: ValueError:检查输入时出错:预期input_1有3个维度,但是有阵列形状(2697,6)

为什么keras会将其选为三维形状?

2 个答案:

答案 0 :(得分:3)

来自Input文档:

  

参数

     
      
  • shape:形状元组(整数),不包括批量大小。   例如,shape=(32,)表示预期的输入   将是批量的32维向量。

  •   
  • batch_shape:形状元组(整数),包括批量大小。   例如,batch_shape=(10, 32)表示   预期的输入将是10个32维向量的批次。   batch_shape=(None, 32)表示任意数量的批次   32维向量。

  •   

因此,您只需将shape更改为batch_shape

即可
Input(batch_shape=(2697, 6))

答案 1 :(得分:2)

您不应将批量大小尺寸放入输入形状,因为Keras会自动添加此尺寸。这就是你的二维输入形状变成三维的原因。只需更改此行:

inputs = Input(shape=(6,))