title: Error while using Convolutional layers on CPU
body: <p>Can I use Convolutional layers of keras without gpu support? I am getting errors when I use it on Colab with runtime as None.
  My code looks like this:</p>
  
  <pre><code>model = tf.keras.Sequential()
  model.add(layers.Conv1D(1,5, name='conv1', padding="same", activation='relu',data_format="channels_first", input_shape=(1,2048)))
  # model.add(layers.LSTM(5, activation='tanh'))
  model.add(layers.Flatten())
  model.add(layers.Dense(512, activation='relu'))
  model.add(layers.Dense(num_classes, activation='softmax'))
  #model.summary()
  model.compile(loss=tf.keras.losses.categorical_crossentropy,
                optimizer=tf.keras.optimizers.SGD(lr=0.001, momentum=0.9),
                metrics=['accuracy'])
  
  x_train = train_value
  y_train = train_label
  x_test = test_value
  y_test = test_label
  print(np.shape(x_train)) #shape of x train is (4459, 1, 2048)
  print(np.shape(x_test)) #shape of test is (1340,1,2048)
  
  history = model.fit(x_train, y_train,
            batch_size=100,
            epochs=30, 
            verbose=1,
            validation_data=(x_test, y_test)
  
            )
  </code></pre>
  
  <p>It is running fine on GPU but gives following error on CPU:</p>
  
  <blockquote>
    <p>InvalidArgumentError: Conv2DCustomBackpropFilterOp only supports NHWC.
       [[{{node
    training/SGD/gradients/gradients/conv1/conv1d_grad/Conv2DBackpropFilter}}]]</p>
    
    <p>UnimplementedError: The Conv2D op currently only supports the NHWC
    tensor format on the CPU. The op was given the format: NCHW    [[{{node
    conv1_1/conv1d}}]]</p>
  </blockquote>
  
  <p>I have figured out that the problem is with the format of Input Data. My input data are vectors of size (1,2048). Can you please guide me on how to convert these vectors to NHWC format?
  I would really appreciate it, if someone can clear this up for me.
  Thanks in advance. </p>