李沐_动手学深度学习_19_卷积层

news2024/12/24 8:10:07
一、遇到的磕磕绊绊:

1.一维数组 和 二维矩阵数据之间的区别:

二、用到的一些代码:
#备注,矩阵点乘 就是 A*B
import torch
from d2l import torch as d2l  #这个库是李沐自己写的,我去
from torch import nn

def corr(X,k):
    h,w = k.shape
    Y = torch.zeros((X.shape[0]-h+1,X.shape[1]-w+1))
    for i in range(Y.shape[0]):
        for j in range(Y.shape[1]):
            Y[i,j] = ((X[i:i+h,j:j+w])*k).sum() #这里证明了,先h 后w,谢谢
    return Y
X =torch.tensor([[0.0,1.0,2.0],[1.0,2.0,3.0],[2.0,3.0,4.0]])
K =torch.tensor([[0.0,1.0],[2.0,3.0]])
corr(X,K)
#手动利用nn.module的模板实现 二维卷积层:
class my_conv(nn.Module):
    def __init__(self,kernel_size):
        super().init()
        self.weight =nn.Parameter(torch.rand(kernel_size))
        self.bias = nn.Parameter(torch.zeros(1))
    def forward(self,x):
        return corr(x,self.weight)+self.bias


#利用卷积层 实现对图像的 颜色边缘进行检测:
X=torch.ones(6,8)
X[:,2:6] = 0
X
import matplotlib.pyplot as plt
show_x = X.numpy()
plt.imshow(show_x)
plt.show()
Kernel = torch.tensor([[1.0,-1.0]])
Y = corr(X,Kernel)
show_out = Y.numpy()
plt.imshow(show_out)
plt.show()
Y
#通过使用nn.conv2d 自己学出 可以分辨 颜色边界的 kernel
conv2d = nn.Conv2d(in_channels=1,out_channels=1,kernel_size=(1,2),bias = False)

X = X.reshape(1,1,6,8)
Y = Y.reshape(1,1,6,7)

for i in range(10):
    conv2d.zero_grad() #先清空前一次的grad
    Y_hat = conv2d(X)
    loss = (Y_hat-Y)**2  #手动计算MSE
    loss.sum().backward()
    #手动进行optim.step
    conv2d.weight.data[:] -=3e-2*conv2d.weight.grad
    
    #每个epoch进行必要的输出:
    print('epoch : ',i ," loss = ",loss.sum().item())
print(conv2d.weight.data.reshape(1,2))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1040325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【React】JSX语法

目录 一、前言二、JSX介绍三、JSX原理1、DOM结构示例2、HTML的JSX结构示例3、编译之后的代码 四、为什么使用JSX1、JSX的特点2、JSX的书写规范 五、JSX的使用1、嵌入JS表达式2、条件渲染3、列表渲染①、arr.map() 六、组件1、类组件①、实例化组件 2、函数组件3、组件样式①、行…

无缝转换:将File转化为MultipartFile,轻松应对文件上传

无缝转换:将File转化为MultipartFile,轻松应对文件上传 1、概述2、文件转换2.1、 什么是 MultipartFile2.2、将 File 对象转换为 MultipartFile 对象 3、总结 1、概述 大家好,我是欧阳方超,可以关注我的公众号“欧阳方超”&#…

Linux 搭建 Oracel 10g 环境

Oracle 操作 1. Linux 安装 oracle 10g (1) 登录系统 操作系统: Kylin 3.2 硬盘空间: 8G 以上 数据库版本: oracle 10.2.0 使用 root 用户登录操作系统,若为普通用户使用su命令切换至 root用户。 (2) 准备文件 将数据库安装文件(10201_database_…

字节8年经验之谈 —— 10大自动化测试框架总结!

软件行业正迈向自主、快速、高效的未来。为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价。快速实现质量是必要的,因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的需求&#xf…

LL库实现正交编码器数据采集

1,首先打开STM32CubeMX,配置一下工程,这里使用的芯片是STM32F103C8T6。 我这里选择了定时器2和3,因为我有两个电机,在定时器模式这边,我们在Combined Channels这个选项里面我们选择Encoder Mode&#xff0c…

IDEA远程调试Remote Debug

配置idea远程调试 输入服务器ip,并且复制启动参数: -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 使用IDEA远程调试自动生成的参数启动服务器 java -Xdebug -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -jar …

Java on Azure Tooling 8月更新|以应用程序为中心的视图支持及 Azure 应用服务部署状态改进

作者:Jialuo Gan - Program Manager, Developer Division at Microsoft 排版:Alan Wang 大家好,欢迎阅读 Java on Azure 工具的八月更新。在本次更新中,我们将推出新的以应用程序为中心的视图支持,帮助开发人员在一个项…

LVS+Keepalived:实现高效软负载均衡的利器

一、概念 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,它可以通过不同的调度算法和工作模式,将客户端的请求转发给后端的真实服务器。 Keepalived是一个基于VRRP协议来实现的服务高可用方案…

【遥遥领先】Eolink IDEA 插件:零代码入侵,自动生成接口

省流版: Eolink 有 IDEA 插件吗? 有,而且遥遥领先!我们在一年半之前就发布了,而且功能更丰富! IDEA 插件市场搜索“Eolink Apikit”即可安装使用。 🚀使用指引:Eolink - IntelliJ ID…

【注射论文基因,那些年不为人知的AI工具】

我们都知道写论文有很多前期准备工作&#xff0c;例如<任务书>、<文献综述>等等&#xff0c;那么我们能够用什么工具最大限度的提高完成效率的同时还能保证质量呢&#xff0c;让我们接着往下看&#x1f447; 1.文献快速阅读-iTextMaster 文章主题确定了&#xff0…

最强大的iOS应用源码保护工具:Ipa Guard,保护你的商业机密代码

前言 iOS加固保护是直接针对ios ipa二进制文件的保护技术&#xff0c;可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP进行完整性保护&#xff0c;防止应用程序中的代码及资源文件被恶意篡改。Ipa Guard通过修改 ipa 文件中的…

知识储备--基础算法篇-贪心算法

1.贪心算法 1.1贪心算法与背包问题的区别 贪心算法能够通过局部最优去推出全局最优&#xff0c;而背包问题不行&#xff0c;需要用动态规划的方法来解决。 1.2套路 贪心算法没有套路&#xff01;&#xff01; 主要想清楚怎么得到该阶段的局部最优解&#xff0c;如何通过局…

Java学习笔记②

java反射 值的修改 public等属性的值的修改很简单。但private&#xff0c;final的值修改有改变。 比如修改下类的4个属性。 class privateClass {private String privateField "private value";private final String finalPrivateField "final private va…

C语言每日一题(9):跳水比赛猜名次

文章主题&#xff1a;跳水比赛猜名次&#x1f525;所属专栏&#xff1a;C语言每日一题&#x1f4d7;作者简介&#xff1a;每天不定时更新C语言的小白一枚&#xff0c;记录分享自己每天的所思所想&#x1f604;&#x1f3b6;个人主页&#xff1a;[₽]的个人主页&#x1f3c4;&am…

飞书与企业微信的异同

云文档 飞书的云文档会自动用游览器打开&#xff0c;不会直接在PC应用中打开&#xff08;移动端能在应用中打开&#xff09;。 飞书云文档能够插入视频、流程图、问卷等等 聊天消息交互 钉钉也有类似的功能&#xff0c;可以针对消息进行点赞等回复 钉钉的消息回复还有【收到…

触觉智能 PurPle Pi OH(OpenHarmony)开发板

资料汇总 内容预览 产品介绍 PurPle-Pi OH 规格书​​​​​​ 系统编译 Purple-Pi-OH Linux SDK编译 Purple-Pi-OH OHOS SDK编译 使用手册 Purple-Pi-OH Ubuntu系统使用手册 常见FAQ 常见问题 官网 官网地址 Purple Pi OH介绍 Purple Pi OH作为一款兼容树莓派的开…

Springcloud实战之自研分布式id生成器

一&#xff0c;背景 日常开发中&#xff0c;我们需要对系统中的各种数据使用 ID 唯一表示&#xff0c;比如用户 ID 对应且仅对应一个人&#xff0c;商品 ID 对应且仅对应一件商品&#xff0c;订单 ID 对应且仅对应 一个订单。我们现实生活中也有各种 ID &#xff0c;比如身…

【并联有源电力滤波器】基于pq理论的并联有源电力滤波器(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

顾曼宁(顾曼)参加蚂蚁生态全球CEO大会:相信的力量,共筑未来

今天,2023年9月15日,在湖州太湖,蚂蚁生态全球的CEO们举行了一场引人注目的盛会。 时隔三年,这些顶尖的商业领袖们再次齐聚一堂,分享智慧、交流想法,这是一个充满激情和共鸣的时刻,也是一次充满感慨和思考的聚会。 在这场盛会中,顾曼宁(顾曼)特别感谢了蚂蚁集团董事长Eric的精彩…

51单片机自行车码表 速度里程计霍尔测速模拟电机设计

一、系统方案 本设计采用51单片机作为主控器&#xff0c;霍尔测速&#xff0c;数码管显示速度及里程数。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 void init() { IT01; //INT0负跳变触发 TMOD0x01;//定时器工作于方式1 TH00x3c; //5…