如何在TensorFlow.js中对4D张量进行切片操作?
提取Conv2D输出的单个特征图
针对你形状为[1,28,28,32]的张量(格式为[batch, height, width, channels]),以下是两种主流框架下提取单个特征图的方法:
TensorFlow/Keras
假设你的张量名为conv_output:
- 获取形状为
[1,28,28,1]的单个特征图:
直接通过切片保留batch和单通道维度,比如提取第n个特征图(n取值0到31):single_feature_map_4d = conv_output[:, :, :, n:n+1] - 获取形状为
[28,28]的单个特征图:
去掉batch维度和通道维度的单元素索引:single_feature_map_2d = conv_output[0, :, :, n]
PyTorch
如果你的张量是[1,28,28,32]格式(NHWC),操作逻辑和TensorFlow一致:
- 获取形状为
[1,28,28,1]的单个特征图:single_feature_map_4d = conv_output[:, :, :, n:n+1] - 获取形状为
[28,28]的单个特征图:single_feature_map_2d = conv_output[0, :, :, n]
如果你的PyTorch张量是默认的[batch, channels, height, width]格式(即[1,32,28,28]),则调整索引方式:
- 获取形状为
[1,1,28,28]的单个特征图(对应你要的[1,28,28,1],可通过permute转格式):single_feature_map_4d = conv_output[:, n:n+1, :, :] # 转成NHWC格式:[1,28,28,1] single_feature_map_4d_nhwc = single_feature_map_4d.permute(0, 2, 3, 1) - 获取形状为
[28,28]的单个特征图:single_feature_map_2d = conv_output[0, n, :, :]
内容的提问来源于stack exchange,提问作者program1232123
相关产品推荐
相关产品推荐

