nodejs做视频网站,app拉新平台,建筑学院网站,旅游网站建设报告**前置知识#xff1a;
1、张量和通道
张量#xff1a;多维数组#xff0c;用来表示数据#xff08;图像、视频等#xff09;
通道#xff1a;图像数据的一部分#xff0c;表示不同的颜色或特征层
通道只是张量的其中一个维度 以一张RGB图像为例#xff0c;
该图像… **前置知识
1、张量和通道
张量多维数组用来表示数据图像、视频等
通道图像数据的一部分表示不同的颜色或特征层
通道只是张量的其中一个维度 以一张RGB图像为例
该图像数据可以用一个三维张量shape等于C,H,W来表示
其中C表示通道数对于RGB图像C3H表示高度W表示宽度 再以一批64张图像组成的数据对象来看
它可以用一个四维张量shape等于N,C,H,W来表示
其中N表示批次大小一批次图像的数量 关于通道的补充 2、Reshape输入数据和卷积核张量的重塑
input torch.reshape(input, (1, 1, 5, 5))
1第一个 1 表示有 1 张图片批量大小1第二个 1 表示输入的通道数这里是单通道表示灰度图像5 和 5分别表示图像的高度和宽度
kernel torch.reshape(kernel, (1, 1, 3, 3))
1第一个 1 表示有 1 个卷积核输出通道数1第二个 1 表示卷积核的输入通道数与input的输入通道数匹配3 和 3分别表示卷积核的高度和宽度 通过重塑增加的信息主要是关于批量大小和通道数
这使得输入和卷积核符合 conv2d 函数的要求
输入张量必须是四维的形状为 (N, C, H, W)
卷积核权重必须是四维的形状为 (out_channels, in_channels, kernel_height, kernel_width) 补充
一张2*2RGB图像与一个3*3卷积核的卷积
reshape后
input的形状是13221表示1张图片
卷积核的形状是13331表示1个输出通道 3、outputF.conv2d(input,kernel,stride1,padding1)
input输入张量4维kernel卷积核4维stride卷积核移动的步幅可以是一个整数或元组默认为 1padding在输入的边缘添加零填充帮助保持输出的空间尺寸 **代码 步骤
import torch.nn.functional as F
定义input、kernel——修改成四维形状reshape——使用conv2d进行卷积 灰度图像的卷积帮助识别图像中的特定特征如边缘或纹理
import torch
import torch.nn.functional as Finputtorch.tensor([[1,2,0,3,1],[0,1,2,3,1],[1,2,1,0,0],[5,2,3,1,1],[2,1,0,1,1]
])#卷积核
kerneltorch.tensor([[1,2,1],[0,1,0],[2,1,0]
])print(input.shape)
print(kernel.shape)inputtorch.reshape(input,(1,1,5,5)) #图片数图层数通道数宽高
kerneltorch.reshape(kernel,(1,1,3,3))print(input.shape)
print(kernel.shape)output1F.conv2d(input,kernel,stride1)
print(output1)output2F.conv2d(input,kernel,stride2)
print(output2)output3F.conv2d(input,kernel,stride1,padding1)
print(output3)