news 2026/3/21 3:27:35

57、卷积层(api介绍)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
57、卷积层(api介绍)

卷积层(api介绍)

案例:演示提取图像的特征图

  • 第一步:plt.imread 读取图像为numpy
  • 第二步: 将获取到的图像numpy转换为tensor张量 torch.tensor(img1, dtype=torch.float32)
  • 第三步: 将上面的张量形状改变从hwc,转换为标准的chw torch.permute(img2, (2, 0, 1))
  • 第四步:将chw转化为 Conv2d 要求的输入格式 (N, C, H, W) img3.unsqueeze(dim=0)
  • 第五步:定义一个卷积层 conv = nn.Conv2d(3,4,3,1,0)
  • 第六步:卷积层特征提取,得到的是nchw张量
  • 第七步:拿到其中的chw
  • 第八步:将chw张量转换为hwc为可视化特征图做准备 img6 = torch.permute(img5, (1,2,0))
  • 最后一步:拿到的特征图张量转换为数组进行可视化(因为是nn的自动微分所以需要detach) feature2 = img6[:,:,1].detach().numpy()

测试代码

import torch import matplotlib.pyplot as plt import torch.nn as nn from pyexpat import features def dm01(): img1 = plt.imread("../data/img.jpg") img2 = torch.tensor(img1, dtype=torch.float32) print(f'img2.shape:{img2.shape}') # 将640,640,3 转换为3,640,640 img3 = torch.permute(img2, (2, 0, 1)) print(f'img3.shape:{img3.shape}') # 将 3,640,640 变为 1,3,640,640 img4 = img3.unsqueeze(dim=0) print(f'img4.shape:{img4.shape}') # 定义一个卷积层 # Conv2d 要求的输入格式 (N, C, H, W) # 参1: 输入通道数, 参2: 输出通道数(也就是有几个卷积核),参3:卷积核大小。参4:步长, 参5:填充0(不填充) conv = nn.Conv2d(3,4,3,1,0) # 提取特征后为 1,4,638,638 conv_img = conv(img4) print(f'img5.shape:{conv_img.shape}') # 取出其中4,638,638 (c,h,w) img5 = conv_img[0] print(f'img5.shape:{img5.shape}') # 转化为 638,638,4(h,w,c)才能可视化 img6 = torch.permute(img5, (1,2,0)) print(f'img6.shape:{img6.shape}') # 展示四个卷积核,提取到的不同的4个特征图 # 最后一步再将张量转换为数组用于可视化(又因为nn,自动微分了所以需要detach) feature1 = img6[:,:,0].detach().numpy() plt.imshow(feature1) plt.show() feature2 = img6[:,:,1].detach().numpy() plt.imshow(feature2) plt.show() feature3 = img6[:, :, 2].detach().numpy() plt.imshow(feature3) plt.show() feature4 = img6[:, :, 3].detach().numpy() plt.imshow(feature4) plt.show() pass if __name__ == '__main__': dm01()

测试结果

D:\pythonDemo\.venv\Scripts\python.exe -X pycache_prefix=C:\Users\Administrator.SY-202408261506\AppData\Local\JetBrains\PyCharm2025.3\cpython-cache "D:/Software/PyCharm 2025.3/plugins/python-ce/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 57683 --file D:\pythonDemo\demo\test30_cnn.py Connected to: <socket.socket fd=816, family=2, type=1, proto=0, laddr=('127.0.0.1', 57684), raddr=('127.0.0.1', 57683)>. Connected to pydev debugger (build 253.28294.336) img2.shape:torch.Size([640, 640, 3]) img3.shape:torch.Size([3, 640, 640]) img4.shape:torch.Size([1, 3, 640, 640]) img5.shape:torch.Size([1, 4, 638, 638]) img5.shape:torch.Size([4, 638, 638]) img6.shape:torch.Size([638, 638, 4]) Process finished with exit code 0

总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 19:38:52

什么是无代码平台?它能为企业解决什么问题?

在数字化转型的浪潮中&#xff0c;企业对高效管理工具的需求日益迫切。然而&#xff0c;传统软件开发模式的高成本、长周期、强技术依赖等痛点&#xff0c;让众多中小企业望而却步。近年来&#xff0c;无代码平台的崛起打破了这一僵局&#xff0c;它以“低门槛、高灵活、低成本…

作者头像 李华
网站建设 2026/3/16 6:27:38

2025年暨南大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年暨南大学计算机考研复试机试真题 2025年暨南大学计算机考研复试上机真题 历年暨南大学计算机考研复试上机真题 历年暨南大学计算机考研复试机试真题 更多学校题目开源地址&#xff1a;https://gitcode.com/verticallimit1/noobdream N 诺 DreamJudge 题库&#xff1…

作者头像 李华
网站建设 2026/3/20 8:17:16

2025年西北大学计算机考研复试机试真题(附 AC 代码 + 解题思路)

2025年西北大学计算机考研复试机试真题 2025年西北大学计算机考研复试上机真题 历年西北大学计算机考研复试上机真题 历年西北大学计算机考研复试机试真题 更多学校题目开源地址&#xff1a;https://gitcode.com/verticallimit1/noobdream N 诺 DreamJudge 题库&#xff1…

作者头像 李华
网站建设 2026/3/15 19:20:55

微信小程序uniapp-vue自驾游资助定制游旅游线路景点评论系统

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万…

作者头像 李华
网站建设 2026/3/15 11:21:42

2025最新!专科生必看9大AI论文平台测评与推荐

2025最新&#xff01;专科生必看9大AI论文平台测评与推荐 2025年专科生必备的AI论文平台测评指南 随着人工智能技术在教育领域的广泛应用&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率与质量。然而&#xff0c;面对市场上琳琅满目的AI论文平台&#xff0c;如何…

作者头像 李华
网站建设 2026/3/15 11:23:01

学长亲荐8个AI论文工具,研究生轻松搞定开题报告!

学长亲荐8个AI论文工具&#xff0c;研究生轻松搞定开题报告&#xff01; AI工具让论文写作不再“卡壳” 在研究生阶段&#xff0c;论文写作是每位学生必须面对的挑战。无论是开题报告、文献综述还是最终的毕业论文&#xff0c;都需要大量的时间与精力。而随着AI技术的发展&…

作者头像 李华