卷积核和学习和训练

如果我们已知原始的图像数据,和这个图像经过某个卷积核计算后,得到的新的数据,那么如何计算出这个卷积核中的具体参数呢?

例如,已知输入图像是12*12的,经过某个3*3的卷积核,得到的输出数据是10*10的。

那么如何求出,这个卷积核中的9个参数呢?

可能有的同学知道,中间的这个卷积核,其实是一个拉普拉斯算子,也就是中间是8,周围是-1的,3乘3数组。

我们接下来要做的是,使用pytorch框架,通过梯度下降算法,基于输入和输出数据,训练出这个拉普拉斯卷积核。

1.训练数据的准备

在main函数中,声明img数组,保存输入图像。

因为我们需要生成输出数据,所以要提前设置一个拉普拉斯卷积核kernel,用作输出数据Y的生成。

然后调用函数functional.conv2d,计算img和kernel的卷积运算,得到输出图像,保存在Y中。

特别要注意的是,在后面训练过程中,我们只会使用img和Y,并不会使用kernel。

此处的kernel,只是用来计算输出图像Y的,而后面要根据img和Y,重新训练出kernel中的参数。

2.训练卷积核中的参数

接着,构造一个卷积核weight。

这里要注意,卷积核是四维张量,前两个维度代表了卷积核的数量和输入通道数量,这里都是1。

后面的两个3,代表了卷积核的大小,是3乘3的。

定义学习速率lr和迭代次数num。

我们需要注意的是,如果学习速率lr过大,梯度下降的过程中就会出现溢出错误。

如果迭代次数不足,则无法收敛到最优解。

这里定义的学习速率是10的-7次方,迭代次数是10000,这些值都是经过实验得出的合适值。

然后进入卷积核的迭代循环。

在循环中,首先计算基于当前参数的预测值predict。

根据平方误差,计算预测值和真实值之间的损失值loss。

这里就是要训练出一组参数,使loss取得最小值。

换句话说,就是要找到使predict和Y相等的参数。

接着使用backward函数进行反向传播,计算出损失loss关于参数weight的梯度。

梯度会保存在weight.grad中。这里我们直接使用梯度下降算法,更新weight保存的数据。

最后调用zero_grad清空上一轮迭代的梯度。

为了便于调试,我们每迭代1000轮,就打印一次loss的值进行观察。

最后打印训练好的卷积核中的参数。

运行程序,我们会发现,经过10000轮的迭代,损失值loss会变得非常小。

最终就得到一个3乘3的卷积核:

而该卷积核中保存的数据,就非常接近原来设置的卷积核了。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go 如何通过代码进行格式化 gomft命令

我们都知道 使用JetBrains GoLand 快捷键可以快速对代码进行格式化 现在将使用go的代码进行格式化 源代码如下: package mainimport "fmt"func main() {var n1 int 19var n2 float32 4.78//var n3 bool false//var n4 byte avar s1 string…

JoySSL怎么样

JoySSL是一家专业的SSL证书服务提供商,致力于为网站和在线业务提供最佳的安全加密解决方案。以下是JoySSL的一些优点: 提供多种类型的SSL证书选择:JoySSL提供单域名、多域名、通配符等不同类型的SSL证书,以满足不同网站的需求。证…

web自动化上传文件

1,web 自动化文件上传不要太简单 熟悉 web 自动化测试的大佬应该都懂,当采用 js 调用原生控件进行文件上传的时候,最常用的是使用 pywin32 等系统交互库。 当看到 pywin32 那丑陋的 api 封装只能爆粗口。就为了输入一个文件地址,…

大数据Doris(四十四):查询物化视图和自动匹配

文章目录 查询物化视图和自动匹配 一、​​​​​​​查询物化视图

网络运行状况监控工具

网络运行状况是网络在其操作和环境约束范围内按预期运行的能力,但是,随着云和人工智能等技术的出现,网络变得越来越复杂,维护其 IT 基础设施是一项越来越繁琐的任务。为了确保网络可靠性,组织需要了解每个端点的运行状…

Walker S敲锣,人形机器人第一股优必选在港交所主板挂牌上市

12月29日,优必选(股份代码:9880.HK)正式在香港交易所主板挂牌上市,股价最高达91港元,对应市值约380亿港元。 图片1:从左至右依次为:香港交易所联席营运总监陈翊庭,香港联…

TG7050CKN,TG7050SKN ,TG7050CMN,TG7050SMN

爱普生推出的温补晶振型号:TG7050CKN,TG7050SKN ,TG7050CMN,TG7050SMN频率范围为 10mhz ~ 54mhz 适用于广泛的频率需求。这几款的特点就是耐高温,温度可达105℃高温,而且都是高稳定性温补晶振,&…

计量经济学|学习笔记以及学习感悟

初级计量经济学着重于介绍基本的统计工具和经济模型,以帮助理解经济数据和经济现象之间的关系。它包括回归分析、假设检验和预测方法等内容。中级计量经济学则深入研究这些方法的理论基础和实际应用,包括更复杂的模型和技术,如面板数据分析、…

Python 操作 MySQL:使用 mysql-connector-python 操作 MySQL 数据库

大家好,我是水滴~~ 当涉及到使用 Python 操作 MySQL 数据库时,mysql-connector-python 库是一个强大而常用的选择。该库提供了与 MySQL 数据库的交互功能,使您能够执行各种数据库操作,如连接数据库、执行查询和插入数据等。在本文…

IDEA使用HDFS的JavaApi

注:以下代码操作是利用junit在java测试文件夹中实现。 1. 准备工作 1.1 创建测试类 创建测试类,并定义基本变量 public class HDFSJAVAAPI {// 定义后续会用到的基本变量public final String HDFS_PATH "hdfs://hadoop00/";Configuration …

CleanMyMac X 4.14.6中文版2024年最新必备的Mac系统清理工具

CleanMyMac X 4.14.6中文版是一款专业的Mac系统清理软件,可一键智能扫描清理mac系统日志缓存磁盘垃圾和多余语言安装包,快速释放电脑内存,轻松管理和升级Mac上的应用。同时CleanMyMac X 破解版可以强力卸载恶意软件,修复系统漏洞&…

CSI多普勒效应

CSI多普勒效应 一、定义二、应用三、计算方法1方法2STFT和DFT间的区别 一、定义 多普勒频移是指由于运动引起的信号频率的变化。当信号源相对于接收器运动时,由于多普勒效应,信号的频率会发生改变。多普勒频移可以通过以下公式表示: 二、应…