CNN卷积神经网络Python实现

import torch
from torch import nn# ①定义互相关运算
def corr2d(X, K):"""计算二维互相关运算。"""# 获取K的形状 行为h,列为wh, w = K.shape# 生成全0的矩阵,行为X的行减去h加上1,列为X的列减去w加上1Y = 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()# 返回Yreturn Y# ②实现二维卷积层
class Conv2D(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 corr2d(x, self.weight) + self.biasif __name__ == '__main__':# 定义模型conv2d = nn.Conv2d(1, 1, kernel_size=(1, 2), bias=False)# 定义XX = torch.ones((6, 8))X[:, 2:6] = 0# 定义KK = torch.tensor([[1.0, -1.0]])# 计算YY = corr2d(X, K)X = X.reshape((1, 1, 6, 8))Y = Y.reshape((1, 1, 6, 7))# 训练10轮for i in range(10):# 计算Y_hatY_hat = conv2d(X)# 损失l = (Y_hat - Y)**2# 梯度归零conv2d.zero_grad()# 后向传播l.sum().backward()# 优化函数 学习率=3e-2conv2d.weight.data[:] -= 3e-2 * conv2d.weight.gradif (i + 1) % 2 == 0:print(f'batch {i+1}, loss {l.sum():.3f}')# 经过10轮学习的权重为print(conv2d.weight.data.reshape((1, 2)))

结果

batch 2, loss 1.463
batch 4, loss 0.358
batch 6, loss 0.106
batch 8, loss 0.037
batch 10, loss 0.014
tensor([[ 1.0066, -0.9830]])Process finished with exit code 0

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

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

相关文章

rabbit MQ的延迟队列处理模型示例(基于SpringBoot)

说明: 生产者P 往交换机X(typedirect)会发送两种消息:一、routingKeyXA的消息(消息存活周期10s),被队列QA队列绑定入列;一、routingKeyXB的消息(消息存活周期40s&#xf…

Prolog 中的逻辑探险:学习9组逻辑蕴涵公式

引言 上次写了16组等价公式定律,今天继续用Prolog写9组逻辑蕴涵公式。 感觉这些公式的名称与公式挺难一一对应来记忆的,只能多练习了. 1. 附加律 (Addition) A ⇒ A∨B 当你拿到一个苹果(A),突然你知道,即使有了梨(…

用向量数据库Milvus Cloud搭建GPT大模型+私有知识库的定制商业文案助手

随着智能助手的不断普及和发展,商业文案的创作也变得更加智能化和定制化。在这个信息爆炸的时代,商业文案的撰写已经不再是简单的文字表达,而是需要结合大数据分析和人工智能技术,以更好地满足目标客群的需求。在本文中,我们将介绍如何利用向量数据库Milvus Cloud搭建GPT大…

Nosql的redis概述及基本操作

关系数据库与非关系型数据库概述 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型…

tokenizers Tokenizer 类

Tokenizer 类 依赖安装 pip install tensorflow pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple基类原型 tokenizers.Tokenizer(model)基类说明 Tokenizer 函数构造一个分词器对象。分词方式主要有word-level、subword-level、char-level三种&#x…

3.什么是Spring IOC 容器?有什么作用?

什么是Spring IOC 容器 控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对 象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部…

软件测试/人工智能丨人工智能取代软件测试团队

在数字时代,人工智能(AI)和软件测试如同两位不同领域的英雄,各自拥有独特的技能和力量。然而,当这两者碰撞在一起时,究竟会擦出怎样的火花呢?让我们进入这场奇妙的对决,探索AI如何改…

如何快速让苹果TF上架

苹果TF上架是一个相对复杂的过程,需要经过多个步骤和审核环节。以下是一些建议,可以帮助你快速让苹果TF上架: 确保应用程序符合苹果的审核指南和规则。在提交应用程序之前,仔细阅读苹果的审核指南,并确保你的应用程序…

MFC项目添加CUDA支持

文章目录 前言一、开启项目CUDA支持二、链接CUDA库三、链接cu文件 前言 我目前的项目状况是: 拥有一个MFC项目;拥有现成的 .cuh文件 和 .cu文件。 我想做的是:将.cuh和.cu文件放到我的项目中,并且编译成功跑起来 一、开启项目C…

如何使用清华源镜像下载python相关的包?

目的:当使用pip3默认安装python相关插件遇到网络不可达问题时,更换镜像源尝试下载~ #使用如下命令,以下网址都是Python Package Index (PyPI)的一个镜像站点 ##########清华 pip3 install 包名 -i https://pypi.tuna.…

【python学习】基础篇-常用函数-sorted() 对可迭代对象进行排序

sorted()函数是Python中的内置函数,用于对可迭代对象进行排序操作。 它会返回一个新的已排序的列表,而不会修改原始的可迭代对象。 sorted()函数的基本语法如下: sorted(iterable, keyNone, reverseFalse)参数说明: iterable:表…

Halcon (0):C# 联合Halcon方式简介和就业市场说明

文章目录 文章专栏视频资源前言相关视频联合C#开发直接导出C#代码Halcon引擎调用开发函数封装库工程导出 总结就业市场 文章专栏 Halcon开发 视频资源 机器视觉之C#联合Halcon 前言 根据我的测试,我发现Halcon和WPF中的halcon插件,代码具有对应性。就是…

反序列化漏洞(4), phar文件反序列化, 漏洞实验, 漏洞利用

一, 简介 1. phar文件 PHAR,全称PHP Archive,是一种将PHP代码和资源打包成一个自包含的文件的格式。这种文件格式可以将PHP代码文件和其他资源集合在一起,实现应用程序、库或插件的分发。在PHP中,Phar广泛应用于打包应用程序、库…

Unity - 实现模型动态伸长缩短,贴图不变形(材质球参数篇)

思路为修改模型材质球的Tiling参数&#xff0c;根据与自身localScale的值得到合适的比例&#xff0c;再修改Tiling值 var mat target.transform.GetComponent<Renderer>().material; var oriValue mat.mainTextureScale;//沿着Y轴伸缩 oriValue.y 1 * target.transfo…

人脸识别系统——Face recognition 人脸识别

第1关&#xff1a;人脸检测 ****************BEGIN**************** import face_recognition image_path ./step1/image/children.jpg image face_recognition.load_image_file(image_path) face_locations face_recognition.face_locations(image) print(face_locations)…

HCIP-二、MSTP+Eth-trunk

二、MSTPEth-trunk 实验拓扑实验需求及解法 实验拓扑 实验需求及解法 //1.如图所示&#xff0c;配置设备名称和 IP 地址。 //2.在 SW1 与 SW2 之间配置链路聚合协议 LACP&#xff0c;完成以下需求&#xff1a; //2.1 SW1 作为主动端&#xff0c;设置系统优先级为最高。 [SW1]l…

报错!Jupyter notebook 500 : Internal Server Error

Jupyter notebook 报错 500 : Internal Server Error 问题背景 tensorflow-gpu环境&#xff0c;为跑特定代码专门开了一个环境&#xff0c;使用conda安装了Jupyter notebook&#xff0c;能够在浏览器打开Jupyter notebook&#xff0c;但是notebook打开ipynb会报错。 问题分析…

Android——Gradle插件项目根目录settings.gradle和build.gradle

一、settings.gradle结构分析 项目根目录下的settings.gradle配置文件示例&#xff1a; pluginManagement {/*** The pluginManagement.repositories block configures the* repositories Gradle uses to search or download the Gradle plugins and* their transitive depen…

【excel技巧】单元格内的公式如何隐藏?

Excel文件中最重要的除了数据还有就是一些公式了&#xff0c;但是只要点击单元格&#xff0c;公式就能显示出来&#xff0c;如果不想别人看到公式应该如何设置呢&#xff1f;今天分享隐藏excel单元格数据的方法。 选中单元格&#xff0c;点击右键打开【设置单元格格式】&#x…

电脑显示找不到mfc140.dll怎么办?哪个修复方法值得推荐

在电脑使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;例如"mfc140.dll文件缺失"这个问题可能会导致某些应用程序无法正常运行&#xff0c;可能给您带来困扰。本篇文章为您提供了六种有效解决此类问题的策略&#xff0c;使您能够迅速修复并恢复应用程…