SCRN中间层的特征图可视化
SCRN中间层的特征图可视化# todo 特征图可视化# 0: 展示特征的形状print('=e21', x_e21.shape)# == e21torch.Size([1, 32, 88, 88])# 1: 去除多余层[1, 32, 88, 88] => [...
·
SCRN中间层的特征图可视化
# todo 特征图可视化
# 0: 展示特征的形状
print('=e21', x_e21.shape)
# == e21 torch.Size([1, 32, 88, 88])
# 1: 去除多余层[1, 32, 88, 88] => [32, 88, 88]
x_e21 = x_e21.squeeze()
# 2: 取出32通道的第一个通道
x_e21 = x_e21[0]
# 3: 归一化:用sigmoid函数将(-1,1)范围变为 => (0,1)
x_e21 = np.squeeze(torch.sigmoid(x_e21).cpu().data.numpy())
# 4: 将归一化的结果扩展为RGB的255 (0,1) => (0,255)
x_e21 = 255 * x_e21
# 5: 保存图片
misc.imsave(save_path + name + '_xxxe21.png', x_e21)
遵照上面原理
下面可视化e21 e22 s21 s22
# 1: 去除多余层[1, 32, 88, 88] => [32, 88, 88]
x_e21 = x_e21.squeeze()
x_e22 = x_e22.squeeze()
x_s21 = x_s21.squeeze()
x_s22 = x_s22.squeeze()
# 2: 取出32通道的第一个通道
x_e21 = x_e21[0]
x_e22 = x_e22[0]
x_s21 = x_s21[0]
x_s22 = x_s22[0]
# 3: 归一化:用sigmoid函数将(-1,1)范围变为 => (0,1)
x_e21 = np.squeeze(torch.sigmoid(x_e21).cpu().data.numpy())
x_e22 = np.squeeze(torch.sigmoid(x_e22).cpu().data.numpy())
x_s21 = np.squeeze(torch.sigmoid(x_s21).cpu().data.numpy())
x_s22 = np.squeeze(torch.sigmoid(x_s22).cpu().data.numpy())
# 4: 将归一化的结果扩展为RGB的255 (0,1) => (0,255)
x_e21 = 255 * x_e21
x_e22 = 255 * x_e22
x_s21 = 255 * x_s21
x_s22 = 255 * x_s22
# 5: 保存图片
misc.imsave(save_path + name + '=e21.png', x_e21)
misc.imsave(save_path + name + '=e22.png', x_e22)
misc.imsave(save_path + name + '=s21.png', x_s21)
misc.imsave(save_path + name + '=s22.png', x_s22)
8特征实用例子
# todo 特征图可视化
# 0: 展示特征的形状
print('=e21', x_e21.shape)
# == e21 torch.Size([1, 32, 88, 88])
# 1: 去除多余层[1, 32, 88, 88] => [32, 88, 88]
x_e21 = x_e21.squeeze()
x_e22 = x_e22.squeeze()
x_e23 = x_e23.squeeze()
x_e24 = x_e24.squeeze()
x_s21 = x_s21.squeeze()
x_s22 = x_s22.squeeze()
x_s23 = x_s23.squeeze()
x_s24 = x_s24.squeeze()
# 2: 取出32通道的第一个通道
x_e21 = x_e21[0]
x_e22 = x_e22[0]
x_e23 = x_e23[0]
x_e24 = x_e24[0]
x_s21 = x_s21[0]
x_s22 = x_s22[0]
x_s23 = x_s23[0]
x_s24 = x_s24[0]
# 3: 归一化:用sigmoid函数将(-1,1)范围变为 => (0,1)
x_e21 = np.squeeze(torch.sigmoid(x_e21).cpu().data.numpy())
x_e22 = np.squeeze(torch.sigmoid(x_e22).cpu().data.numpy())
x_e23 = np.squeeze(torch.sigmoid(x_e23).cpu().data.numpy())
x_e24 = np.squeeze(torch.sigmoid(x_e24).cpu().data.numpy())
x_s21 = np.squeeze(torch.sigmoid(x_s21).cpu().data.numpy())
x_s22 = np.squeeze(torch.sigmoid(x_s22).cpu().data.numpy())
x_s23 = np.squeeze(torch.sigmoid(x_s23).cpu().data.numpy())
x_s24 = np.squeeze(torch.sigmoid(x_s24).cpu().data.numpy())
# 4: 将归一化的结果扩展为RGB的255 (0,1) => (0,255)
x_e21 = 255 * x_e21
x_e22 = 255 * x_e22
x_e23 = 255 * x_e23
x_e24 = 255 * x_e24
x_s21 = 255 * x_s21
x_s22 = 255 * x_s22
x_s23 = 255 * x_s23
x_s24 = 255 * x_s24
# 5: 保存图片
misc.imsave(save_path + name + '=e21.png', x_e21)
misc.imsave(save_path + name + '=e22.png', x_e22)
misc.imsave(save_path + name + '=e23.png', x_e23)
misc.imsave(save_path + name + '=e24.png', x_e24)
misc.imsave(save_path + name + '=s21.png', x_s21)
misc.imsave(save_path + name + '=s22.png', x_s22)
misc.imsave(save_path + name + '=s23.png', x_s23)
misc.imsave(save_path + name + '=s24.png', x_s24)
1 原版SCRN
2 (这里中间层监督出了问题es对掉)
(中间层监督es正常)
更多推荐
所有评论(0)