возможно ли использовать формат NCHW на CPU?

#python-3.x #tensorflow #keras

#python-3.x #tensorflow #keras

Вопрос:

Я пытаюсь использовать формат данных NCHW, т. Е. первый канал, в моем процессоре. Это слой maxpool как часть Resnet18.

 MaxPooling2D(pool_size=[3, 3], strides=2, padding='same', data_format='channels_first')
  

И ошибка, которую я получаю, это:

 InvalidArgumentError (see above for traceback): Default MaxPoolingOp only supports NHWC on device type CPU
     [[Node: max_pooling2d_3/MaxPool = MaxPool[T=DT_FLOAT, data_format="NCHW", ksize=[1, 1, 3, 3], padding="SAME", strides=[1, 1, 2, 2], _device="/job:localhost/replica:0/task:0/device:CPU:0"](batch_normalization_51/cond/Merge)]]
  

Есть ли способ это исправить? Я тоже пробовал data_format="NCHW" , но он выдал ту же ошибку.

Ответ №1:

Не могли бы вы, пожалуйста, попробовать с помощью простой модели отладить проблему? Это работает в моей системе с процессором.

 model = Sequential()
model.add(MaxPooling2D(pool_size=[3, 3], strides=2, padding='same', 
                    data_format='channels_first', input_shape=(3,224,224)))
model.summary()
X = np.random.randn(1,3,224,224)
Y = model.predict(X)
print(Y.shape)
(1, 3, 112, 112)
  

Комментарии:

1. он перестал выдавать эту ошибку при компиляции tensorflow на intel mkl, спасибо.

2. @newlearnershiv пожалуйста, рассмотрите возможность публикации короткого ответа, чтобы тема была полезна другим в будущем — в противном случае, возможно, лучше просто удалить вопрос

3. Из комментария @newlearnershiv я нашел эту полезную ссылку software.intel.com/content/www/us/en/develop/articles/… (вкратце, pip устанавливает intel-tensorflow и pip удаляет tensorflow)

Ответ №2:

 pip install intel-tensorflow
  

проблема решена, но обучение, похоже, идет медленнее, чем раньше.