UNet涉及的重点函数记录

发布于:2023-01-04 ⋅ 阅读:(412) ⋅ 点赞:(0)

1 数据加载

1.1 glob.glob() & os.path.join()

self.imgs_path = glob.glob(os.path.join(data_path,"image/*.png"))

在这里插入图片描述

glob.glob(“地址”) 功能:匹配所有的符合条件的文件,并将其以list的形式返回;
os.path.join(“字符串1”,“字符串2”,“字符串3”) 功能:将字符串1,2,3拼接成一个完整的目录地址;

1.2 cv2.flip()

flip = cv2.flip(image,flipCode)

cv2.flip(image,num) num 可以为1表示水平翻转,0表示垂直翻转,-1表示水平+垂直翻转

例子:
在这里插入图片描述

1.3 cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
label = cv2.cvtColor(label, cv2.COLOR_BGR2GRAY)

image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 功能:将image转化成灰度图,使用cv2读取出来的数据是BGR格式,和我们平时看到的图像不太一样

2 模型搭建

2.1 nn.BatchNorm2d()

nn.BatchNorm2d(out_channels)

nn.BatchNorm2d(out_channels) 功能:将数据进行归一化处理,具体的公式是:输入数据-数据平均值)/(数据方差开方) 方差的简单理解

2.2 ConvTranspose2d()

self.up1 = nn.ConvTranspose2d(in_channels=1024, out_channels=512, kernel_size=2, stride=2)

ConvTranspose2d(in_channels, out_channels, kernel_size, stride) 功能:将输入数据的通道数增加,具体参见:反卷积的计算公式,总结就是:padding=0时,卷积核的起始位置和输入层相交一个像素,当padding=1时,卷积核的起始位置和输入层相交2个像素,依此类推; stride=1时,输入层元素之间没有间隔,当stride=2时,输入层元素之间间隔为1,stride=3时,输入层元素之间间隔为2,以此类推

2.3 torch.cat([x2, x1], dim=1)

x = torch.cat([x2, x1], dim=1)   # 进行数据拼接,进行拼接,在通道上进行拼接

outputs = torch.cat(inputs, dim) 功能:在给定维度上对输入的张量序列seq 进行连接操作。
inputs : 待连接的张量序列,可以是任意相同Tensor类型的python 序列
dim : 选择的扩维, 必须在0到len(inputs[0])之间,沿着此维连接张量序
代码中的tensor张量,是(batch_size,channel,height,width),所以是在通道上进行拼接的

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到