Преобразование последнего канала в изображение первого канала

У меня есть тензор изображения следующих размеров

TensorShape([Dimension(1), Dimension(96), Dimension(96), Dimension(3)])

Я хочу, чтобы этот тензор находился в следующем измерении канала

TensorShape([Dimension(1), Dimension(2), Dimension(96), Dimension(96)])

я пытался

tf.transpose (image, perm = [0,3,1,2])

но это не сработало. Он возвращается в том же виде, что и предыдущий.

Поскольку это требование алгоритма Facenet, предложите, как это сделать.


person priya kansal    schedule 20.05.2018    source источник
comment
Вы не можете просто изменить форму, это вернет недопустимые значения. Например. если ваш ввод был [[1,2,3], [4,5,6]], существует большая разница между транспонированием ([[1,4], [2,5], [3,6]]) и простое изменение формы ([[1,2], [3,4], [5,6]]). Однако я подозреваю, что OP неправильно использует транспонирование, поскольку он должен выполнять свою работу. Пожалуйста, предоставьте более полный образец кода.   -  person xdurch0    schedule 20.05.2018
comment
Возможный дубликат преобразования между NHWC и NCHW в TensorFlow   -  person P-Gn    schedule 20.05.2018


Ответы (1)


Вы можете попробовать преобразовать тензор в массив NumPy, а затем использовать np.rollaxis и преобразовать обратно в тензор Tensorflow.

person rahul kanojia    schedule 31.05.2020