二维数组叠加:channels_first与channels_last互转

在表示一组彩色图片的问题上,Theano和Caffe使用(样本数,通道数,行或称为高,列或称为宽)通道在前的方式,称为channels_first;而TensorFlow使用(样本数,行或称为高,列或称为宽,通道数)通道在后的方式,称为channels_last。

如下构造二维矩阵以描述这种特殊的叠加方式(二种方法)

实现效果

[[['1' '2']
  ['3' '4']]

 [['5' '6']
  ['7' '8']]

 [['a' 'b']
  ['c' 'd']]]
(3, 2, 2)

---------------
channels_first转channels_last:
方式一:
[[['1' '5' 'a']
  ['2' '6' 'b']]

 [['3' '7' 'c']
  ['4' '8' 'd']]]
(2, 2, 3)
方式二:
[[['1' '5' 'a']
  ['2' '6' 'b']]

 [['3' '7' 'c']
  ['4' '8' 'd']]]
(2, 2, 3)

代码

import numpy as np

a=[[1,2],[3,4]]
b=[[5,6],[7,8]]
c=[['a','b'],['c','d']]

#二维矩阵叠加

# d=[]
# d.append(a)
# d.append(b)
# d.append(c)
# print(np.array(d))
# print(np.array(d).shape)


d=np.array([a,b,c])
print(d)
print(d.shape)

print()
print("---------------")
print("channels_first转channels_last:")
print("方式一:")
newd=np.moveaxis(d,0,2)
print(newd)
print(newd.shape)

print("方式二:")
newd2=np.rollaxis(d,0,3)
print(newd2)
print(newd2.shape)
阅读更多
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/nima1994/article/details/80333962
个人分类: python/人工智障
所属专栏: 机器学习入门与放弃
上一篇接雨水
下一篇旋转图像
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭