Глядя на код Tensorflow, немного MKL оптимизация выполняется путем перезаписи графа с заменой наборов узлов объединенными функциями, использующими MKL. Я пытался искать перезаписи с помощью tf.logging.set_verbosity(1)
, но никогда не видел ожидаемые сообщения журнала.
Я собрал Tensorflow из исходников на процессоре с включенными MKL и XLA. Я думаю, что сборка использует MKL, потому что я могу использовать формат данных «NCHW» для tf.nn.conv2d
и tf.nn.bias_add
в прямом проходе, если они встречаются вместе. Он также работает быстрее и полностью использует процессор. Обратный проход через ошибки, говорящие, что «CPU BiasGradOp поддерживает только NHWC», хотя похоже, что существуют функции MKL для объединения Conv2D и BiasAdd как вперед, так и назад с «NCHW». Поэтому я хочу искать непосредственно переписывания.
Как я могу увидеть, происходит ли перезапись графика?