我正在尝试从TensorFlow中的卷积层获取图像数据。 我有一个像:
这样的数组data = [N, Width, Height, Channel]
其中N是图像编号,宽度和高度是图像尺寸和通道索引中的通道。
我需要的是另一个4D阵列,如:
[N, Channel, Width, Height]
原因是循环由N和Channel进行,并获得每个图像的ech通道的2D字节数组。
img = Image.fromarray(data[N][Channel], 'L')
img.save('my.png')
答案 0 :(得分:1)
只需使用np.transpose
:
x = np.zeros((32, 10, 10, 3)) # image with 3 channels, size 10x10
res = np.tranpose(x, (0, 3, 1, 2))
print res.shape # prints (32, 3, 10, 10)
答案 1 :(得分:1)
使用转置功能对尺寸重新排序。
https://www.tensorflow.org/versions/r0.9/api_docs/python/array_ops.html#transpose
你可以在tensorflow代码中做这样的事情。
image = tf.transpose(image, perm = [0, 3, 1, 2])
在perm参数中,您可以指定所需尺寸的新顺序。在这种情况下,您将通道尺寸(3)移动到第二个位置。
如果你想在将它输入张量流模型之前这样做,你可以用同样的方式使用np.transpose。