Если я использую tf.transpose, меняет ли он также расположение памяти?
В numpy используется функция np.ascontiguousarray.
Я имею в виду, что это было бы важно, если бы я использовал cuda. Потому что имеет значение, будет ли схема памяти [N C H W] или [N H W C]. (N ... Nr выборок, H ... высота массива, W ... ширина массива, C ... глубина массива, например, RGB)
Как это проверить?





Если вы внимательно прочитаете документация, вы сможете найти ответ:
Numpy Compatibility
In numpy transposes are memory-efficient constant time operations as they simply return a new view of the same data with adjusted strides.
TensorFlow does not support strides, so transpose returns a new tensor with the items permuted.
Следовательно, tf.transpose возвращает новый тензор желаемой формы (и, следовательно, неэффективен), так что да, он меняет структуру памяти.
Однако вместо использования tf.trasnpose вы можете использовать tf.reshape для изменения формы тензора без создания новой.