我有一些带有标签的灰度和彩色图像。我想结合这灰色和彩色图像(4通道),并运行传输学习使用4通道图像。怎么做?
发布于 2020-01-08 13:54:16
如果我正确地理解了这个问题,你想要组合一个通道图像和三个通道图像,并得到一个4通道图像,并使用这个作为您的输入。
如果这是您想要做的,那么只需使用torch.cat()即可。
加载两个图像并沿通道维组合它们的示例代码
import numpy as np
import torch
from PIL import Image
image_rgb = Image.open(path_to_rgb_image)
image_rgb_tensor = torch.from_numpy(np.array(image_rgb))
image_rgb.close()
image_grayscale = Image.open(path_to_grayscale_image))
image_grayscale_tensor = troch.from_numpy(np.array(image_grayscale))
image_grayscale.close()
image_input = torch.cat([image_rgb_tensor, image_grayscale_tensor], dim=2)我假设要使用的灰度图像被转换为形状为[..., ..., 1]的张量,将rgb图像转换为[..., ..., 3]。
发布于 2020-01-07 06:23:10
您的当前模型期望一个只有三个通道的RGB输入,因此它的第一个conv层有out_channelsx3xkernel_heightxkernel_width.,第一个层的weight是in_channels=3。
为了容纳4个通道输入,您需要更改第一个层,使其具有out_channelsx4xkernel_heightxkernel_width.形状的in_channels=4和weight。您还希望保留学习的权重,因此您应该初始化新的weight,使其与旧的相同,除了添加的权重中的微小噪声外。
https://stackoverflow.com/questions/59622376
复制相似问题