深度学习基础 2D卷积(1)
什么是2D卷积
2D参数量怎么计算
以pytorch为例子,2D卷积在设置的时候具有以下参数,具有输入通道的多少(这个决定了卷积核的通道数量),滤波器数量,这个是有多少个滤波器,越多提取的特征就越有用,kernel_size,这个是卷积核的大小,相当于一个观测器的大小,越大参数越大其实是越强。
import torch
import torch.nn as nn# 创建一个输入张量,假设是一张3通道的4x4图像
# 输入通道数为3
input_tensor = torch.randn(1, 3, 4, 4) # (batch_size, in_channels, height, width)# 创建卷积层
# 输入通道数为3,输出通道数为16,卷积核大小为3x3,步幅为1,无填充
conv_layer = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3, stride=1, padding=0)# 执行卷积操作
output_tensor = conv_layer(input_tensor)# 查看输出张量的形状
print("输出张量的形状:", output_tensor.shape)
Param # = (input_channels * output_channels * kernel_height * kernel_width) + output_channels
数字图像处理中的2D卷积与自己设计的2D卷积的区别
代码如下
import cv2
import numpy as np
import torch
import torch.nn as nn
import matplotlib.pyplot as plt# 创建一个随机的灰度图像
gray_image = np.random.rand(64, 64) * 255 # 生成0到255之间的随机灰度值
gray_image=cv2.imread("7.jpg",0)# 将灰度图像复制到RGB通道,创建彩色图像
color_image = cv2.cvtColor(gray_image.astype(np.uint8), cv2.COLOR_GRAY2RGB)# 定义一个锐化卷积核
# kernel = np.array([[-1, -1, -1],
# [-1, 9, -1],
# [-1, -1, -1]])/2 # 平均滤波器kernel = np.array([[ 0 , 1 , 0],[ 1 ,-4 , 1],[ 0 , 1 , 0]])*128 # 平均滤波器kernel = np.array([[ 1 , 1 , 1],[ 1 ,1 , 1],[ 1 , 1 , 1]])/9 # 平均滤波器 # 进行基本卷积操作、OpenCV卷积操作和锐化卷积操作
basic_result = cv2.filter2D(gray_image, -1, kernel)
opencv_conv_result = cv2.filter2D(gray_image, -1, kernel)
sharpened_image = cv2.filter2D(gray_image, -1, kernel)# 将灰度图像转换为PyTorch张量
gray_image_tensor = torch.from_numpy(gray_image).unsqueeze(0).unsqueeze(0).float() / 255.0# 创建一个卷积层,使用相同的卷积核
conv2d_layer = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, padding=1, bias=False)
conv2d_layer.weight.data = torch.from_numpy(kernel).unsqueeze(0).unsqueeze(0).float()# 进行PyTorch的Conv2d卷积操作
pytorch_conv_result = conv2d_layer(gray_image_tensor).squeeze().detach().numpy()# 显示原始灰度图像、基本卷积结果、OpenCV卷积结果、锐化卷积结果和PyTorch卷积结果
plt.figure(figsize=(25, 5))
plt.subplot(1, 5, 1)
plt.title("Original Gray Image")
plt.imshow(gray_image, cmap='gray', vmin=0, vmax=255)plt.subplot(1, 5, 2)
plt.title("Basic Convolution")
plt.imshow(basic_result, cmap='gray', vmin=0, vmax=255)plt.subplot(1, 5, 3)
plt.title("OpenCV Convolution")
plt.imshow(opencv_conv_result, cmap='gray', vmin=0, vmax=255)# plt.subplot(1, 5, 4)
# plt.title("Sharpened Gray Image")
# plt.imshow(sharpened_image, cmap='gray', vmin=0, vmax=255)plt.subplot(1, 5, 4)
plt.title("PyTorch Convolution")
plt.imshow(pytorch_conv_result, cmap='gray', vmin=0, vmax=1)plt.show()
均值滤波结果如下
采用边缘检测算法结果如下
结果如下
从结果来看卷积似乎有些区别但是功能一致具体问题处在哪,以后再尝试
相关文章:
深度学习基础 2D卷积(1)
什么是2D卷积 2D参数量怎么计算 以pytorch为例子,2D卷积在设置的时候具有以下参数,具有输入通道的多少(这个决定了卷积核的通道数量),滤波器数量,这个是有多少个滤波器,越多提取的特征就越有用…...
OpenCV DNN C++ 使用 YOLO 模型推理
OpenCV DNN C 使用 YOLO 模型推理 引言 YOLO(You Only Look Once)是一种流行的目标检测算法,因其速度快和准确度高而被广泛应用。OpenCV 的 DNN(Deep Neural Networks)模块为我们提供了一个简单易用的 API࿰…...
第八章 Linux文件系统权限
目录 8.1 文件的一般权限 1.修改文件或目录的权限---chmod命令 2.对于文件和目录,r,w,x有不同的作用: 3.修改文件或目录的所属主和组---chown,chgrp 8.2 文件和目录的特殊权限 三种通过字符描述文件权限 8.3 ACL 权限 1.A…...
XXL-JOB源码梳理——一文理清XXL-JOB实现方案
分布式定时任务调度系统 流程分析 一个分布式定时任务,需要具备有以下几点功能: 核心功能:定时调度、任务管理、可观测日志高可用:集群、分片、失败处理高性能:分布式锁扩展功能:可视化运维、多语言、任…...
java做个qq机器人
前置的条件 机器人是基于mirai框架实现的。根据官方的文档,建议使用openjdk11。 我这里使用的编辑工具是idea2023 在idea中新建一个maven项目,虽然可以使用gradle进行构建,不过我这里由于网络问题没有跑通。 pom.xml <dependency>&l…...
前端 | AjaxAxios模块
文章目录 1. Ajax1.1 Ajax介绍1.2 Ajax作用1.3 同步异步1.4 原生Ajax 2. Axios2.1 Axios下载2.2 Axios基本使用2.3 Axios方法 1. Ajax 1.1 Ajax介绍 Ajax: 全称(Asynchronous JavaScript And XML),异步的JavaScript和XML。 1.2 Ajax作用 …...
高效的ProtoBuf
一、背景 Google ProtoBuf介绍 这篇文章我们讲了怎么使用ProtoBuf进行序列化,但ProtoBuf怎么做到最高效的,它的数据又是如何压缩的,下面先看一个例子,然后再讲ProtoBuf压缩机制。 二、案例 网上有各种序列化方式性能对比&#…...
删除SQL记录
删除记录的方式汇总: 根据条件删除:DELETE FROM tb_name [WHERE options] [ [ ORDER BY fields ] LIMIT n ] 全部删除(表清空,包含自增计数器重置):TRUNCATE tb_namedelete和truncate的区别: d…...
数据结构--》探索数据结构中的字符串结构与算法
本文将带你深入了解串的基本概念、表示方法以及串操作的常见算法。通过深入理解串的相关概念和操作,我们将能够更好地应用它们来解决算法问题。 无论你是初学者还是进阶者,本文将为你提供简单易懂、实用可行的知识点,帮助你更好地掌握串在数据…...
云安全之等级保护详解
等级保护概念 网络安全等级保护,是对信息系统分等级实行安全保护,对信息系统中使用的安全产品实行按等级管理,对信息系统中发生的信息安全事件分等级进行响应、处置。 网络安全等级保护的核心内容是:国家制定统一的政策、标准&a…...
VUE状态持久化,储存动态路由
1. vuex persistPlugin.js 文件 const routerKey "ROUTER_KEY";export default (store) > {// 刷新页面时,存储改变的数据window.addEventListener("beforeunload", () > {localStorage.setItem(routerKey, JSON.stringify(store.stat…...
微信小程序代驾系统源码(含未编译前端,二开无忧) v2.5
简介: 如今有越来越多的人在网上做代驾,打造一个代驾平台,既可以让司机增加一笔额外的收入,也解决了车主酒后不能开发的问题,代驾系统基于微信小程序开发的代驾系统支持一键下单叫代驾,支持代驾人员保证金…...
1797_GNU pdf阅读器evince
全部学习汇总: GreyZhang/g_GNU: After some years I found that I do need some free air, so dive into GNU again! (github.com) 近段时间经历了很多事情,终于想找一点技术上的自由气氛。或许,没有什么比GNU的一些软件探索更适合填充这样的…...
网络-跨域解决
文章目录 前言一、跨域是什么?二、跨域的解决1.JSONP2.前端代理dev环境3.后端设置请求头CORS4.运维nginx代理 总结 前言 本文主要介绍跨域问题介绍并提供了四种解决办法。 一、跨域是什么? 准确的来说是浏览器存在跨域问题,浏览器为了安全考…...
git提交代码的流程
1.拉取代码 当你进入了一家公司就需要拉去公司的代码进行开发,此时你的项目小组长会给你个地址拉代码, git clone 公司项目的地址 此时如果不使用了这个方式拉去代码,拉去的是master分支上的代码,但是很多数的情况下,公司的项目可能会在其它的分支上,因此到公…...
【SpringBoot】配置文件详解
配置文件详解 一. 配置文件作用二. 配置文件的格式1. properties 配置文件说明①. properties 基本语法②. 读取配置⽂件③. properties 缺点 2. yml 配置⽂件说明①. yml 基本语法②. yml 使用进阶 3. properties VS yml 三. 设置不同环境的配置⽂件 一. 配置文件作用 整个项…...
一文讲懂-五险一金
假设在“北京”:这里的数值并不代表任何真实的城市或地区,只是为了说明计算方法。 工资: 月工资为 6000 元。养老保险: 单位比例: 20% 个人比例: 8%医疗保险: 单位比例: 10% 个人比例: 2%失业保险: 单位比例: 2% 个人比例: 0.5%工伤保险: 单位比例: 0.5…...
判断三条边是否构成三角形(Python实现)
组成三角形的三条边a,b,c需满足条件: ab>c ac>b bc>a 已知:三角形任意三条边的长度之和大于第三条边。 解题:定义3个变量a、b、c,让用户输入任意三个数字赋值给三个变量。判断三个变量中是否任意两个之和大于第三个数值。 判断条件之…...
The directory ‘*‘ or its parent directory is not owned by the current user
python安装编译时出现如下错误 The directory /home/admin/.cache/pip/http or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may …...
leetcode做题笔记162. 寻找峰值
峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时间复杂度为 O(…...
nginx负载转发源请求http/https:X-Forwarded-Proto及nginx中的转发报头
今天在排查服务器的问题时最后定位到服务器因为经过了运维这一层的处理,转发过来的请求不管用户请求的是https还是http,我们的proxy服务器收到的都是80端口上的http。于是联系相关部门了解有没有现成的可用的这样一个字段来获得这个值。公司用的也是标准…...
Docker compose插件安装
添加docker源 # Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/do…...
【数据结构与算法】树、二叉树的概念及结构(详解)
前言: 💥🎈个人主页:Dream_Chaser~ 🎈💥 ✨✨专栏:http://t.csdn.cn/oXkBa ⛳⛳本篇内容:c语言数据结构--树以及二叉树的概念与结构 目录 一.树概念及结构 1.树的概念 1.1树与非树 树的特点࿱…...
函数指针数组指针(指向函数指针数组的指针)
一、什么是函数指针数组指针? 本质是指针,指向函数指针数组,存放函数指针数组的地址。 代码如下: pfArr是函数指针数组 p是函数指针数组指针 int main() {int(*pfArr[])(int, int) { Add,Sub };//函数指针数组int(*(*p)[])(int, …...
经典算法-----汉诺塔问题
前言 今天我们学习一个老经典的问题-----汉诺塔问题,可能在学习编程之前我们就听说过这个问题,那这里我们如何去通过编程的方式去解决这么一个问题呢?下面接着看。 汉诺塔问题 问题描述 这里是引用汉诺塔问题源自印度一个古老的传说&#x…...
博客之站项目测试报告
项目背景项目功能测试计划Bug总结升级自动化测试正常登录流程 项目背景 1:博客之站系统是采用前后端分离的方式来实现;使用MySQL、Redis数据库储存相关数据;同时部署到云服务器上。 2:包含注册页、登录页、博客列表页、个人列表页…...
k8s晋级之管理容器的计算资源
概述 在 Kubernetes 中创建工作负载时,您可以为 Pod 中的每一个容器指定其所需要的内存(RAM)大小和 CPU 数量。如果这些信息被指定了,Kubernetes 调度器可以更好的决定将 Pod 调度到哪一个节点。对于容器来说,其所需要…...
计算机竞赛 深度学习火车票识别系统
文章目录 0 前言1 课题意义课题难点: 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 图像识别 火车票识别系统 该项目较为新颖,适…...
盒子阴影和网页布局
盒子阴影 box-shadow: 10px 10px 10px 4px rgba(0,0,0,.3);//最后一个是透明度 传统网页布局的三种方式 标准流 就是按照规定好的默认方式排列 1.块级元素:div、hr、p、h1~h2、ul、ol、dl、form、table 行内元素会按照书顺序,从左到右顺序排列&#…...
Ph.D,一个Permanent head Damage的群体
一个群体 Permanent head Damage 的博士生群体 Permanent head Damage Ph.D 博士生一年级的同学们,不要担忧或高兴得太早,抱歉你们还没有经历Qualification——预备考试,你们暂且不能被称为博士,只能称自己是要努力成为博士预备…...
手机注册登录wordpress/文章发布在哪个平台好
首先编写一段简单的css脚本 然后呢,在asp:BulletedList中通过 CssClass "style1"将样式作用到控件上。看看运行效果 注意到上下边框的颜色分别是红色和橙色,右边框是绿色。在这里出现边框,并没有针对div来设置border,而…...
导航网站怎么赚钱/独立站seo是什么
出现这种错误往往是中间出现了异常导致的,断点跟踪下看是哪儿出错了。...
做视频网站视频文件都存放在哪/网站排名优化教程
接口测试执行完发送一个邮件,这里使用QQ邮箱发送,先要拿到QQ邮箱授权码,方法自行百度 1 # codingutf-82 import smtplib3 from email.mime.text import MIMEText4 5 class sendEmail():6 def __init__(self,sender,password,resever,subj…...
门厂家网站建设/北京十大教育培训机构排名
曾经有这么一道经典面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么? 相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了…...
印度网站建设/seo综合查询国产
前言 最近写了一个小小的检测程序,python写起来只需要短短一百行,可是打包起来就没有C那么容易了。下面记录一下我艰难的“打包”过程。 方法一:py2exe py2exe是一种经典的方法,为什么说他经典呢?因为这玩意取了个这么…...
wordpress主题手机/seo实战密码
1、SPI MSB优先,8Bit寄存器地址与内容; 2、寄存器结构与之前使用的LT8900不同,分为R、W寄存器与特殊功能寄存器; 3、特别注意:在TX、RX、RT中断或者轮询后置1,必须写1清零与清除相应的FIFO,否则…...