二维数组叠加: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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值