title: InvalidArgumentError: Default MaxPoolingOp only supports NHWC on device type CPU
body: <pre><code>np.random.seed(1212)
  import keras
  from keras.models import Model
  from keras.layers import *
  from keras import optimizers
  from keras.layers import Input, Dense
  #from keras.models import Sequential
  #from keras.layers import Dense
  #from keras.layers import Dropout
  #from keras.layers import Flatten
  #from keras.layers.convolutional import Conv2D
  #from keras.layers.convolutional import MaxPooling2D
  from keras.utils import np_utils
  from keras import backend as K
  K.set_image_data_format('channels_last')
  from tensorflow.keras import Sequential
  from tensorflow.keras.layers import Conv2D, Flatten, Dense,Dropout,MaxPooling2D
  </code></pre>
  <p>I am trying equation solver using deep learning.
  but while making the model I'm getting an error.
  Im giving input for model np.array(l)</p>
  <pre><code>df_train=pd.read_csv('train_final3.csv',index_col=False)
  labels=df_train[['784']]
  df_train.drop(df_train.columns[[784]],axis=1,inplace=True)
  </code></pre>
  <p>the dimension of the above dataframe is 5X784</p>
  <pre><code>labels=np.array(labels)
  from keras.utils.np_utils import to_categorical
  cat=to_categorical(labels,num_classes=13)
  </code></pre>
  <p>L array</p>
  <pre><code>l=[]
  for i in range(47504):
      l.append(np.array(df_train[i:i+1]).reshape(1,28,28))
  </code></pre>
  <p>model defination</p>
  <pre><code>np.random.seed(7)
  model = Sequential()
  model.add(Conv2D(30, (5, 5), input_shape=(1 , 28, 28), activation='relu'))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  model.add(Conv2D(15, (3, 3), activation='relu'))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  model.add(Dropout(0.2))
  model.add(Flatten())
  model.add(Dense(128, activation='relu'))
  model.add(Dense(50, activation='relu'))
  model.add(Dense(13, activation='softmax'))
  # Compile model
  model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
  from keras.models import model_from_json
  </code></pre>
  <p>when i am trying to fit model im getting error</p>
  <pre><code>model.fit(np.array(l), cat, epochs=10, batch_size=200,shuffle=True,verbose=1)
  </code></pre>
  <p>error</p>
  <pre><code>Epoch 1/10
  ---------------------------------------------------------------------------
  InvalidArgumentError                      Traceback (most recent call last)
  &lt;ipython-input-14-68276a2674ff&gt; in &lt;module&gt;
  ----&gt; 1 model.fit(np.array(l), cat, epochs=10, batch_size=200,shuffle=True,verbose=1)
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\keras\engine\training.py in _method_wrapper(self, *args, **kwargs)
      106   def _method_wrapper(self, *args, **kwargs):
      107     if not self._in_multi_worker_mode():  # pylint: disable=protected-access
  --&gt; 108       return method(self, *args, **kwargs)
      109 
      110     # Running inside `run_distribute_coordinator` already.
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)
     1096                 batch_size=batch_size):
     1097               callbacks.on_train_batch_begin(step)
  -&gt; 1098               tmp_logs = train_function(iterator)
     1099               if data_handler.should_sync:
     1100                 context.async_wait()
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\eager\def_function.py in __call__(self, *args, **kwds)
      778       else:
      779         compiler = &quot;nonXla&quot;
  --&gt; 780         result = self._call(*args, **kwds)
      781 
      782       new_tracing_count = self._get_tracing_count()
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\eager\def_function.py in _call(self, *args, **kwds)
      838         # Lifting succeeded, so variables are initialized and we can run the
      839         # stateless function.
  --&gt; 840         return self._stateless_fn(*args, **kwds)
      841     else:
      842       canon_args, canon_kwds = \
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\eager\function.py in __call__(self, *args, **kwargs)
     2827     with self._lock:
     2828       graph_function, args, kwargs = self._maybe_define_function(args, kwargs)
  -&gt; 2829     return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
     2830 
     2831   @property
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\eager\function.py in _filtered_call(self, args, kwargs, cancellation_manager)
     1846                            resource_variable_ops.BaseResourceVariable))],
     1847         captured_inputs=self.captured_inputs,
  -&gt; 1848         cancellation_manager=cancellation_manager)
     1849 
     1850   def _call_flat(self, args, captured_inputs, cancellation_manager=None):
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\eager\function.py in _call_flat(self, args, captured_inputs, cancellation_manager)
     1922       # No tape is watching; skip to running the function.
     1923       return self._build_call_outputs(self._inference_function.call(
  -&gt; 1924           ctx, args, cancellation_manager=cancellation_manager))
     1925     forward_backward = self._select_forward_and_backward_functions(
     1926         args,
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\eager\function.py in call(self, ctx, args, cancellation_manager)
      548               inputs=args,
      549               attrs=attrs,
  --&gt; 550               ctx=ctx)
      551         else:
      552           outputs = execute.execute_with_cancellation(
  
  ~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\eager\execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
       58     ctx.ensure_initialized()
       59     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
  ---&gt; 60                                         inputs, attrs, num_outputs)
       61   except core._NotOkStatusException as e:
       62     if name is not None:
  
  InvalidArgumentError:  Default MaxPoolingOp only supports NHWC on device type CPU
       [[node sequential/max_pooling2d/MaxPool (defined at &lt;ipython-input-14-68276a2674ff&gt;:1) ]] [Op:__inference_train_function_963]
  
  Function call stack:
  train_function
  </code></pre>
  <p>please any one guide me error Default MaxPoolingOp only supports NHWC on device type CPU
  Thank you</p>