title: Negative dimension error while using keras Convolutional1D Layer
body: <p>I'm trying to create a char cnn using Keras. That type of cnn requires you to use <code>Convolutional1D</code> layer. But all the ways I try to add them to my model, it gives me errors at creation stage. Here is my code:</p>
  
  
  
  <pre class="lang-python prettyprint-override"><code>def char_cnn(n_vocab, max_len, n_classes):
      conv_layers = [[256, 7, 3],
                     [256, 7, 3],
                     [256, 3, None],
                     [256, 3, None],
                     [256, 3, None],
                     [256, 3, 3]]
      fully_layers = [1024, 1024]
      th = 1e-6
  
      embedding_size = 128
  
      inputs = Input(shape=(max_len,), name='sent_input', dtype='int64')
  
      # Embedding layer
  
      x = Embedding(n_vocab, embedding_size, input_length=max_len)(inputs)
  
      # Convolution layers
      for cl in conv_layers:
          x = Convolution1D(cl[0], cl[1])(x)
          x = ThresholdedReLU(th)(x)
          if not cl[2] is None:
              x = MaxPooling1D(cl[2])(x)
  
  
      x = Flatten()(x)
  
  
      #Fully connected layers
  
      for fl in fully_layers:
          x = Dense(fl)(x)
          x = ThresholdedReLU(th)(x)
          x = Dropout(0.5)(x)
  
  
      predictions = Dense(n_classes, activation='softmax')(x)
  
      model = Model(input=inputs, output=predictions)
  
      model.compile(optimizer='adam', loss='categorical_crossentropy')
  
      return model
  </code></pre>
  
  <p>And here is the error I receive when I try to call <code>char_cnn</code> function</p>
  
  <pre class="lang-python prettyprint-override"><code>InvalidArgumentError                      Traceback (most recent call last)
  /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/common_shapes.py in _call_cpp_shape_fn_impl(op, input_tensors_needed, input_tensors_as_shapes_needed, require_shape_fn)
      685           graph_def_version, node_def_str, input_shapes, input_tensors,
  --&gt; 686           input_tensors_as_shapes, status)
      687   except errors.InvalidArgumentError as err:
  
  /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/errors_impl.py in __exit__(self, type_arg, value_arg, traceback_arg)
      515             compat.as_text(c_api.TF_Message(self.status.status)),
  --&gt; 516             c_api.TF_GetCode(self.status.status))
      517     # Delete the underlying status object from memory otherwise it stays alive
  
  InvalidArgumentError: Negative dimension size caused by subtracting 3 from 1 for 'conv1d_26/convolution/Conv2D' (op: 'Conv2D') with input shapes: [?,1,1,256], [1,3,256,256].
  </code></pre>
  
  <p>How to fix it?</p>