keras UpSampling2D/3D

UpSampling2D

看tf文档中的解析:

tf.keras.layers.UpSampling2D:Upsampling layer for 2D inputs.

在一个2D输入中进行上采样操作,其实就是复制并且扩展相应的维度。

UpSampling3D

既然有2D和3D之分,对于"channels_last"的数据格式(batch, rows, cols, channels),猜想是UpSampling2D扩展rows, cols,而UpSampling3D可以扩展rows, cols, channels三个维度。

验证

def up_suampling_2D():
	model = Sequential()
	model.add(layers.UpSampling2D(size=(3, 2), input_shape = ((3, 3, 1))))
	return model

参数size,看文档的解析:

size: Int, or tuple of 2 integers. The upsampling factors for rows and columns.

接受一个由两个整数组成的tuple,第一个整数表示rows方向的扩展倍数,第二个表示columns方向的扩展倍数。 (输入int应该是两个方向的扩展倍数都是int)

def test():
	model = up_suampling_2D()
	data_test = np.arange(9).reshape((1, 3, 3, 1))
	predict_result = model.predict(data_test)
	print(data_test)
	print(predict_result)

便于观察,测试数据data_test 是一个 0-8的4维矩阵。以上输出的结果为:
data_test:
[[
[[0],[1],[2]],
[[3],[4],[5]],
[[6],[7],[8]],
]]

predict_result:
[[
[[0.], [0.].[1.],[1.],[2.],[2.]],
[[0.], [0.].[1.],[1.],[2.],[2.]],
[[0.], [0.].[1.],[1.],[2.],[2.]],

[[3.],[3.],[4.],[4.],[5.],[5.]],
[[3.],[3.],[4.],[4.],[5.],[5.]],
[[3.],[3.],[4.],[4.],[5.],[5.]],

[[6.],[6.],[7.],[7.],[8.],[8.]],
[[6.],[6.],[7.],[7.],[8.],[8.]],
[[6.],[6.],[7.],[7.],[8.],[8.]],
]]

可以发现 行扩展了3倍,列扩展了2倍(size =(3,2))。

接下来试一下UpSampling3D:

def up_suampling_3D():
	model = Sequential()
	model.add(layers.UpSampling3D(size=(3, 2, 2), input_shape = ((3, 3, 1))))
	return model

因为是3D所以size也需要多加channels维度,表示在通道方向上的扩展倍数。
predict_result:
[[
[[0., 0.], [0., 0.].[1.,1.],[1.,1.],[2.,2.],[2.,2.]],
[[0., 0.], [0., 0.].[1.,1.],[1.,1.],[2.,2.],[2.,2.]],
[[0., 0.], [0., 0.].[1.,1.],[1.,1.],[2.,2.],[2.,2.]],

[[3.,3.],[3.,3.],[4.,4.],[4.,4.],[5.,5.],[5.,5.]],
[[3.,3.],[3.,3.],[4.,4.],[4.,4.],[5.,5.],[5.,5.]],
[[3.,3.],[3.,3.],[4.,4.],[4.,4.],[5.,5.],[5.,5.]],

[[6.,6.],[6.,6.],[7.,7.],[7.,7.],[8.,8.],[8.,8.]],
[[6.,6.],[6.,6.],[7.,7.],[7.,7.],[8.,8.],[8.,8.]],
[[6.,6.],[6.,6.],[7.,7.],[7.,7.],[8.,8.],[8.,8.]],
]]

可以发现通道方向也扩展了2倍。

PS:推断keras或者tensorflow对矩阵数据的处理方式是先处理channels维度,再处理cols最后是rows维度。也可以说处理顺序是从高维到低维。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专治跌倒扭伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值