简单神经网络(Keras)的可变长度输入

时间:2018-07-11 18:22:15

标签: tensorflow keras theano sequential

可以将可变长度(即input_dim=None)应用于简单的神经网络吗?具体来说,是Keras顺序模型。尝试采用相同的概念时,我一直遇到错误。我已经看过似乎支持此功能的文档:

https://keras.io/getting-started/functional-api-guide/

但是当我执行以下操作时...

model = Sequential()
model.add(Dense(num_feat, input_dim = None, kernel_initializer = 'normal', activation='relu'))
model.add(Dense(num_feat, kernel_initializer = 'normal', activation = 'relu'))
model.add(Dropout(.2))
model.add(Dense(num_feat, kernel_initializer = 'normal', activation = 'relu'))
model.add(Dropout(.2))
model.add(Dense(num_feat, kernel_initializer = 'normal', activation = 'relu'))
model.add(Dropout(.2))
model.add(Dense(ouput.shape[1], kernel_initializer = 'normal', activation = 'linear'))

...我收到此错误:

ValueError: ('Only Theano variables and integers are allowed in a size-tuple.', (None, 63), None)

任何帮助,想法或澄清将不胜感激!

1 个答案:

答案 0 :(得分:1)

不,您不能。 (而且您也不能使用功能性API)

权重矩阵的大小固定,此大小取决于输入的暗淡。

可能的变量尺寸为:

  • 卷积:空间尺寸,但不包括通道/过滤器
    • 一维:input_shape=(None,channels)
    • 2D:input_shape=(None,None,channels)
    • 3D:input_shape=(None,None,None,channels)
  • 在循环图层中:“时间步长”维度,而非要素维度
    • input_shape = (None, features)
  • 在任何层中,都是“批量”尺寸,但是通常不会设置此尺寸,除非您使用batch_shapebatch_input_shape而不是input_dim
    • 用于密集:batch_shape=(None,input_dim)batch_input_shape=(None,input_dim)