当前位置: 首页 > news >正文

【通俗易懂说模型】线性回归(附深度学习、机器学习发展史)

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀深度学习_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 前言

2. 机器学习

2.1 机器学习简史

2.2 机器学习模型

3 线性回归

3.1 线性模型

3.2 目标函数(损失函数)

3.3 优化

3.4 批量输入

3.5 训练

4. 总结


1. 前言

        进入这篇文章之前,想必大家已经阅读过前面的【PyTorch入门】系列文章~~

        从本篇文章开始,我们将进入深度学习基础的学习。首先我们需要对机器学习、深度学习等基本概念有一个了解;然后,我们需要对人工智能整个历史发展有一个了解。

  • 机器学习、深度学习等基础概念。
  • 人工智能发展历史。

2. 机器学习

        在很多科幻电影中,时常会出现一些具有独立思考能力的机器人,这些机器人的智力和人类的相当,甚至超过了人类。银幕上的人工智能形象让人印象深刻、充满幻想。但是在现阶段的现实世界中,我们距离那样的“强人工智能”还有很长一段距离,平时在广告或技术文档中提到的人工智能通常指的是“弱人工智能”。在学术界,研究者们尝试着用各式各样的方法来实现人工智能,因此,该研究领域十分宽泛。如下图所示,人工智能包含机器学习领域,而神经网络是机器学习的一个子领域。本书主要介绍的是神经网络的子领域一深度神经网络,也就是我们常说的“深度学习”

  • 深度学习就是深度神经网络去学习。
  • 深度神经网络是神经网络的一部分。
  • 神经网络又是机器学习的一个研究领域。
  • 人工智能还有强化学习、联邦学习、迁移学习等,都不是机器学习。
  • 机器学习中除了神经网络还有SVM、KNN聚类等学习算法,但是数学理论复杂。
  • 神经网络本质就是函数拟合数据,是机器学习中最重要的一块。
  • 扩展神经网络的连接层深度就是深度神经网络,也就是深度学习。

2.1 机器学习简史

        早在古希腊时期,人们就梦想着能创造出有自主思考能力的机器,这不论在文学作品中还是历史文档中都能找到印迹。在电子计算机还没有被发明之前,发明家们做了很多尝试,但都因机器结构过于简单而失败。第二次世界大战期间,美国为了处理大量的军事数据,组织研究小组研发了第一台电子计算机,电子计算机的发明更加激发了人们对人工智能的向往。1950年,艾伦·麦席森·图灵提出了“图灵测试”理论,也让图灵摘得了“人工智能之父”的桂冠。如今,人工智能已经成为一个学术研究热点和商业市场焦点,且正在快速发展。从20世纪50年代开始,机器学习就是人工智能的重要领域之一,此概念是由Hebb在1949年根据神经心理学的学习原理提出来的。随后在1952年,美国计算机科学家ArthurSamuel为机器学习作出更明确的定义,“机器有能力去学习,而不是通过预先准确实现的代码”。下图展示了各机器学习算法的里程碑时间轴。

        1957年,Rosenblatt基于神经科学提出了机器学习的经典模型之一一感知器模型。感知器模型的意义非凡,它表示:对复杂智能活动的研究可以从对简单感知器模型的研究开始。感知器模型抽象了复杂的生物细胞结构,可以说是神经网络的“鼻祖”。在1969年,人工智能科学家基于对感知器的研究,提出了多层感知器的构想,我们后来将其称为“神经网络”。最初,由于“神经网络”结构复杂且无法找到合适的训练方法,它的发展停滞不前,直到1981年,Linnainmaa提出反向传播训练算法(Backpropagation,BP算法),成功实现了神经网络的有效训练。如今,反向传播算法仍然是深度神经网络的核心训练算法。基于这一训练算法,人工智能科学家们对各种结构的神经网络进行了大胆的尝试,逐渐从浅层结构走向深层结构

  • 感知器模型是初始模型。
  • 多层感知器:神经网络模型的鼻祖。
  • 训练方法导致神经网络发展停滞,直到反向传播算法出现。
  • 反向传播算法+梯度下降算法 的出现使得神经网络从浅层走向深层

        科学家们除了对脑神经的联结方式进行模拟之外,也基于符号逻辑方法进行了尝试。1986年,J.R.Quinlan提出决策树模型,该模型能够处理较为简单的分类学习问题。1995年,Vapnik和Cortes提出了著名的“支持向量机”算法(SVM算法),该算法拥有非常坚实的数学理论基础并且能得到理想的分类结果。当时出现了两大人工智能阵营,一个以“神经网络”为核心,主张联结主义;一个以“支持向量机”为核心,主张符号逻辑方法。从1995年提出SVM算法到2005年,这期间SVM以其更好的分类效果及更低的训练成本赢得了大多数人工智能科学家的青。直到2005年,以Hinton、LeCun、Bengio和AndrewNg等众多人工智能科学家为首,成功地训练了结构更深的神经网络,并且计算结果达到了前所未有的正确率,从而开启了深度学习革命,让神经网络模型再度成为研究热潮。

2.2 机器学习模型

        深度学习是机器学习的一个分支,所以在学习深度学习之前,我们先探讨一下什么是机器学习。假设世界上任意一个现象背后都存在规律。这个规律可以看作一个复杂的函数f。从哲学的角度来看,世间万事万物的规律函数f就是我们所追求的真理。从机器学习和数学角度去看,f是我们的目标函数。

        人类天生具有学习能力。比如一听到打雷,就知道将晒在外面的衣服收回来。打雷可能下雨这个规律是人类通过长期观察现实世界后总结出来的规律。但是世界如此之大,我们眼晴看到的、耳朵听到的事物无论在时间上还是空间上都非常有限。因此,人类通过观察局部世界所总结出来的规律只能不断接近于事物的本质,无法完全相同。从数学角度看,人类所观察的现象就是目标函数f产生的样本集D。我们通过不断地观察现象、进行总结,会得到规律函数g,因为现实中所观察到的现象往往包含误差或干扰,并且样本数不可能无限多,所以规律函数g只能趋近目标函数f,不可能完全相等规律函数g越趋近f,说明我们的总结归纳越好、理论越完备

        机器学习就是让机器代替人类去观察样本、求解函数g的过程。如图3-3所示,未知目标函数
f:X→Y通过取样得到数据样本集D={(x,y),...,(xn,yn)}。机器学习算法A负责从数据样本集D中找出统计规律,算法A会在假设函数集H中找出规律函数g,找到的规律函数g与目标函数f越相似,
找到的规律就越可靠。最终我们可以找到一个与f最相似的规律函数g,它就是机器所学习到的“知识”

3 线性回归

        上一节描绘了机器学习模型的概貌,其实在实际应用中,许多统计问题经常被近似为线性模型,因为线性模型非常简单明了,容易模拟。在这一节中,我们也将线性回(LinearRegression,LR)模型当作深度学习入门的第一个模型,用一个简单的线性回归实例来帮助大家了解机器学习模型的实现过程,现在就让我们一起动手实现它吧!

3.1 线性模型

        我们在进行机器学习之前需要准备好数据样本集D,假设数据样本集D种有5个样本,它们的具体数值如下表所示:

        我们利用scatter()方法绘制散点图。需要注意的是,在使用matplotlib 绘制图形时,传人的预Tensor必须先转换成NumPy数据:

import matplotlib.pyplot as plt # 用来画图的库
import torchx = torch.Tensor([1.4, 5, 11, 16, 21])
y = torch.Tensor([14.4, 29.6, 62, 80, 119.4])
# .numpy():把Tensor转化为numpy数组。
plt.scatter(x.numpy(), y.numpy())
plt.show()

        数据样本集D中的样本分布情况如下图所示。通过观察,我们会发现这5个点符合一种线性的规律,也就是说可以通过一条直线去拟合5个点。

        因为我们假设使用一条直线去拟合,所以依据二维平面中直线的数学公式:

y=kx+b

        公式中的k是斜率,b是截距,又称偏置(bias)。可以发现,不同的k和b的组合可以代表不同的直线,所以,k和b非常重要,我们又称它们为参数(parameter),有时候也称它们为权重(weight)。既然如此,寻找直线的问题就转化成了找寻一组合适的(k,b)。为了统一,我们用w1代替k,用w0代替b,新公式如下:

y=w_1x+w_0

3.2 目标函数(损失函数)

        上一节,我们的目标是找到一组合适的(w1,w0)。假设最初的(w1,w0)是随机的,为了方便区分,那么我们可以把上面的数学公式中的y改写成\widehat{y}

\widehat{y}=w_1x+w_0

        如下表所示,\widehat{y}^{(i)}是由样本中的\widehat{x}^{(i)}传人线性模型后计算得到的输出,{y}^{(i)}是我们真实测量拿到
的样本值。

        因为一开始w1和w0的值不一定是准确的,所以5个数据样本的实际y值与公式下的y值不是完全相等的。现在,我们用一个函数去衡量实际y值和公式y值之间的误差,这个函数有很多名字——损失函数(lossfunction)、准则(criterion)、目标函数(objectivefunction)、代价函数(costfunction)或误差函数(errorfunction),我们可以用L表示。

        在这里,采用的损失函数是均方误差(Mean-SquareError,MSE):

L(w_{1},w_{0})=\sum_{i=1}^{5}(\hat{y}^{(i)}-y^{(i)})^{2}=\sum_{i=1}^{5}(w_{1}x^{(i)}+w_{0}-y^{(i)})^{2}

        可以发现,损失函数L实际是一个关于参数(w0,w1)的函数。因此,我们的目标就是找到一组合适的(w0,w1)使得y^{(i)}\hat{y}^{(i)}之间误差最小,即让损失函数L的值最小。

3.3 优化

        为了让损失函数L的值降到最小,我们要开始调整参数(w1,wo)的值!这个过程就称为优化。L(w0,w1)是一个拥有两个自变量的函数,因此画出来的图形是一个三维的图像,如下图所示。我们要找的最小值就是图像的谷底。

        这里我们采用一种叫作“梯度下降”的方法,这样不论是从图中A点还是B点,都可以最终抵达谷底。什么是梯度?从数学上来看,梯度是一个向量,可以用符号V表示,是函数对每个自变量的偏微分,L的梯度的具体数学表达如下:

\nabla L=(\frac{\partial L}{\partial w_{1}},\frac{\partial L}{\partial w_{0}})

        我们现在将函数想象成一座山。梯度向量的方向刚好和等高线垂直。也就是说,梯度向量代表着函数增长速度最快的方向。如图下图所示,我们朝着梯度向量的反方向移动,梯度向量的反方向始终朝着下降速度最快的方向,最终到达谷底(最低点),这种方法我们称为“梯度下降”。

        上面讨论的是三维的情况,可能比较抽象。我们现在把问题假设成二维的情况:如下图所示,假设t时刻的参数w在最低点的右侧,此时wt处的导数值大于0,w要往数轴左方移动才能让
函数值最小。因此我们不妨使用如下公式进行更新:

w^{t+1}=w^t-\frac{\mathrm{d}L}{\mathrm{d}w^t}\times\delta\quad(\delta>0) 

        这里 \delta就是学习率,是自定义的一个超参数。其越大表示下降越快,越小下降越慢。

        当然在三维、四维甚至无限维度的情况下,仍然成立。具体公式可以修改为:

w_{1}^{t+1}=w_{1}^{t}-\frac{\partial L}{\partial w_{1}^{t}}\times\delta \\w_{0}^{t+1}=w_{0}^{t}-\frac{\partial L}{\partial w_{0}^{t}}\times\delta

3.4 批量输入

        将原本的样本增加一个维度B,表示批次,也就是我们熟知的batch。作用为让多个数据样本同时被处理,从向量变为矩阵,公式都不改变。具体见后面的代码项目部分即可。

3.5 训练

        训练就是不断地通过前向传播和反向传播,对参数w进行调优,最终让损失函数的损失值L达到最小的过程。如下图所示,我们将前向传播分为两步:第1步是将输入x和参数w按照直线公式计
算后得到输出;第2步是将输出和输入损失函数计算后得到损失值L。接着进行反向传播,即求出损失值的梯度向量\Delta L,然后使用梯度下降法更新参数W。

4. 总结

如果想要学习更多深度学习知识,大家可以点个关注并订阅,持续学习、天天进步

你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~

相关文章:

【通俗易懂说模型】线性回归(附深度学习、机器学习发展史)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀深度学习_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …...

Haproxy+keepalived高可用集群,haproxy宕机的解决方案

Haproxykeepalived高可用集群,允许keepalived宕机,允许后端真实服务器宕机,但是不允许haproxy宕机, 所以下面就是解决方案 keepalived配置高可用检测脚本 ,master和backup都要添加 配置脚本 # vim /etc/keepalived…...

python学opencv|读取图像(五十六)使用cv2.GaussianBlur()函数实现图像像素高斯滤波处理

【1】引言 前序学习了均值滤波和中值滤波,对图像的滤波处理有了基础认知,相关文章链接为: python学opencv|读取图像(五十四)使用cv2.blur()函数实现图像像素均值处理-CSDN博客 python学opencv|读取图像(…...

电梯系统的UML文档13

5.2.6 CarPositionControl 的状态图 图 24: CarPositionControl 的状态图 5.2.7 Dispatcher 的状态图 图 25: Dispatcher 的状态图 5.3 填补从需求到状态图鸿沟的实用方法 状态图能对类的行为,一个用例,或系统整体建模。在本文中,状态图…...

CSDN原力值提升秘籍:解锁社区活跃新姿势

在 CSDN 这个技术交流的大舞台上,原力值不仅是个人活跃度的象征,更是开启更多权益与福利的钥匙。最近,我出于自身需求,一头扎进了提升原力值的研究中,经过多方探索与资料整理,现在就迫不及待地把这些干货分…...

互联网行业常用12个数据分析指标和八大模型

本文目录 前言 一、互联网线上业务数据分析的12个指标 1. 用户数据(4个) (1) 存量(DAU/MAU) (2) 新增用户 (3) 健康程度(留存率) (4) 渠道来源 2. 用户行为数据(4个) (1) 次数/频率…...

gltf工具

gltf 在线工具 ONLINE 3D VIEWER 3dviewer.netgltf-viewer cos.3dzhanting.cnviewer www.niushifu.topglTF Viewer gltf-viewer.donmccurdy.comGLTF 在线编辑器 gltf.nsdt.cloudgltfeditor...

车载软件架构 --- 基于AUTOSAR软件架构的ECU开发流程小白篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活…...

Vue.js 如何选择合适的组件库

Vue.js 如何选择合适的组件库 大家在开发 Vue.js 项目的时候,都会面临一个问题:我该选择哪个组件库? 市面上有很多优秀的 Vue 组件库,比如 Element Plus、Vuetify、Quasar 等,它们各有特点。选择合适的组件库&#xf…...

JavaScript系列(58)--性能监控系统详解

JavaScript性能监控系统详解 📊 今天,让我们深入探讨JavaScript的性能监控系统。性能监控对于保证应用的稳定性和用户体验至关重要。 性能监控基础概念 🌟 💡 小知识:JavaScript性能监控是指通过收集和分析各种性能指…...

Flutter 与 React 前端框架对比:深入分析与实战示例

Flutter 与 React 前端框架对比:深入分析与实战示例 在现代前端开发中,Flutter 和 React 是两个非常流行的框架。Flutter 是 Google 推出的跨平台开发框架,支持从一个代码库生成 iOS、Android、Web 和桌面应用;React 则是 Facebo…...

AI-on-the-edge-device - 将“旧”设备接入智能世界

人工智能无处不在,从语音到图像识别。虽然大多数 AI 系统都依赖于强大的处理器或云计算,但**边缘计算**通过利用现代处理器的功能,使 AI 更接近最终用户。 本项目演示了使用 **ESP32**(一种低成本、支持 AI 的设备)进行…...

站在JavaScript的视角去看,HTML的DOM和GLTF的Json数据。

很多前端小伙伴没有见过、操作过gltf文件,对非常懵逼,本文从前端小伙伴最熟悉的dom模型为切入口,以类别的方式来学习一下gltf文件。 一、结构与组织形式 HTML DOM(文档对象模型): 树形结构:HT…...

js --- 获取时间戳

介绍 使用js获取当前时间戳 语法 Date.now()...

冰蝎v3.0 beta7来啦

我用了一台kali,一台centos,一台windows,做了一个文件上传和一个反弹shell实验,载荷是AES加密的,终于感受到了对加密流量的无可奈何~ kali(php8.1)centos(php7.1)window…...

将markdown文件和LaTex公式转为word

通义千问等大模型生成的回答多数是markdown类型的,需要将他们转为Word文件 一 pypandoc 介绍 1. 项目介绍 pypandoc 是一个用于 pandoc 的轻量级 Python 包装器。pandoc 是一个通用的文档转换工具,支持多种格式的文档转换,如 Markdown、HTM…...

Elasticsearch Kibana的下载与安装

1.下载Elasticsearch安装包 Elastic — 搜索 AI 公司 | Elastic Download Elasticsearch | Elastic 2.下载Kibana安装包 Download Kibana Free | Get Started Now | Elastic http://localhost:5601/?code708785...

WPS计算机二级•幻灯片的配色、美化与动画

听说这是目录哦 配色基础颜色语言❤️使用配色方案🩷更改PPT的颜色🧡PPT动画添加的原则💛PPT绘图工具💚自定义设置动画💙使用动画刷复制动画效果🩵制作文字打字机效果💜能量站😚 配色…...

高精度乘法(高×高)

高精度乘法(高高) 前言 ACWing算法基础课讲解了高低的乘法,这里高高作为一个进一步的补充,也是对闫总的板子做一个补充。 以下内容改编自《洛谷深入浅出》123页,我对代码进行了一点修改。 A*B Problem P1303 题目…...

出现 Can not find ‘Converter‘ support class Year 解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. 问题所示 执行代码的时候,出现如下问题: 2025-02-03 19:16:23.638 |...

一表总结 Java 的3种设计模式与6大设计原则

设计模式通常分为三大类:创建型、结构型和行为型。 创建型模式:主要用于解决对象创建问题结构型模式:主要用于解决对象组合问题行为型模式:主要用于解决对象之间的交互问题 创建型模式 创建型模式关注于对象的创建机制&#xf…...

蓝桥与力扣刷题(141 环形链表)

题目:给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的…...

Cursor如何使用Google Gemini以及碰到的坑

Cursor如何使用Google Gemini以及碰到的坑 Cursor介绍下载安装Google Gemini介绍Google Gemini 官网申请Google Gemini API网址 配置Cursor使用Google Gemini打开Corsur设置 Cursor介绍 ‌Cursor是一款基于人工智能的代码编辑器,旨在帮助开发者更高效地编写代码。‌…...

e2studio开发RA4M2(6)----GPIO外部中断(IRQ)配置

e2studio开发RA4M2.6--GPIO外部中断(IRQ)配置 概述视频教学样品申请硬件准备参考程序源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置SWD调试口设置GPIO口配置按键中断配置中断回调函数主程序 概述 GPIO(通用输入/输出&a…...

day38|leetcode 322零钱兑换,279.完全平方数,139.单词拆分

322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是…...

Windsurf cursor vscode+cline 与Python快速开发指南

Windsurf简介 Windsurf是由Codeium推出的全球首个基于AI Flow范式的智能IDE,它通过强大的AI助手功能,显著提升开发效率。Windsurf集成了先进的代码补全、智能重构、代码生成等功能,特别适合Python开发者使用。 Python环境配置 1. Conda安装…...

使用shell命令安装virtualbox的虚拟机并导出到vagrant的Box

0. 安装virtualbox and vagrant [rootolx79vagrant ~]# cat /etc/resolv.conf #search 114.114.114.114 nameserver 180.76.76.76-- install VirtualBox yum install oraclelinux-developer-release-* wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-g…...

【25考研】南开软件考研复试复习重点!

一、复试内容 复试采取现场复试的方式。复试分为笔试、机试和面试三部分。三部分合计100分,其中笔试成绩占30%、机试成绩占30%、面试成绩占40%。 1.笔试:专业综合基础测试 考核方式:闭卷考试,时长为90分钟。 笔试考查内容范围…...

设计模式 - 行为模式_Template Method Pattern模板方法模式在数据处理中的应用

文章目录 概述1. 核心思想2. 结构3. 示例代码4. 优点5. 缺点6. 适用场景7. 案例:模板方法模式在数据处理中的应用案例背景UML搭建抽象基类 - 数据处理的 “总指挥”子类定制 - 适配不同供应商供应商 A 的数据处理器供应商 B 的数据处理器 在业务代码中整合运用 8. 总…...

C++基础(2)

目录 1. 引用 1.1 引用的概念和定义 1.2 引用的特性 1.3 引用的使用 2. 常引用 3. 指针和引用的关系 4. 内联函数inline 5. nullptr 1. 引用 1.1 引用的概念和定义 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开…...

C#中的if判断语句详解

SEO Meta Description: 了解C#中的if判断语句,包括基本用法、嵌套使用、多条件判断以及最佳实践,全面掌握条件控制在C#编程中的应用。 介绍 在编程中,条件判断语句是控制程序流程的关键部分。C#提供了多种条件判断语句,其中 if语…...

PythonStyle MVC 开发框架

在 Python 中,MVC(Model - View - Controller,模型 - 视图 - 控制器)是一种常见的软件设计模式,它将应用程序分为三个主要部分,各自承担不同的职责,以提高代码的可维护性、可扩展性和可测试性。…...

excel实用问题:提取文字当中的数字进行运算

0、前言: 这里汇总在使用excel工作过程中遇到的问题,excel使用wps版本,小规模数据我们自己提取数据可行,大规模数据就有些难受了,因此就产生了如下处理办法。 需求:需要把所有文字当中的数字提取出来&…...

FFmpeg:多媒体处理的瑞士军刀

FFmpeg:多媒体处理的瑞士军刀 前言 FFmpeg 是一个功能强大且跨平台的开源多媒体框架,广泛应用于音视频处理领域。 它由多个库和工具组成,能够处理各种音视频格式,涵盖编码、解码、转码、流处理等多种操作。 无论是专业视频编辑…...

在K8S中,如何把某个worker节点设置为不可调度?

在Kubernetes中,如果你想要把一个worker节点设置为不可调度,意味着你不想让Kubernetes调度器在这个节点上调度新的Pod。这通常用于维护或升级节点,或者当节点遇到硬件故障或性能问题时,要将某个worker节点设置为不可调度。 方法1…...

雷赛LC2000

【一,概述】 这个是中型PLC 【二,外观】 网口编号: 【2】【3】 //默认ip:192.168.1.xxx 【0】【1】 可视化授权不如禾川Q系。 【三,总线轴】 因为本次带的轴是台达A2系列伺服 A2最快总线是【1ms】的倍数…...

Android学习20 -- 手搓App2(Gradle)

1 前言 昨天写了一个完全手搓的:Android学习19 -- 手搓App-CSDN博客 后面谷歌说不要用aapt,d8这些来搞。其实不想弄Gradle的,不过想着既然开始了,就多看一些。之前写过一篇Gradle,不过是最简单的编译,不涉…...

Mac M1 Comfyui 使用MMAudio遇到的问题解决?

问题1: AssertionError: Torch not compiled with CUDA enabled? 解决办法:修改代码以 CPU 运行 第一步:找到 /ComfyUI/custom_nodes/ComfyUI-MMAudio/mmaudio/ext/autoencoder/vae.py文件中的下面这两行代码 self.data_mean nn.Buffer(t…...

Vim的基础命令

移动光标 H(左) J(上) K(下) L(右) $ 表示移动到光标所在行的行尾, ^ 表示移动到光标所在行的行首的第一个非空白字符。 0 表示移动到光标所在行的行首。 W 光标向前跳转一个单词 w光标向前跳转一个单词 B光标向后跳转一个单词 b光标向后跳转一个单词 G 移动光标到…...

【后端面试总结】ES的_template与_index_template技术详解

在Elasticsearch(简称ES)中,索引模板(Index Template)和组件模板(Component Template)是两种用于预定义索引配置的强大工具。它们允许用户在索引创建时自动应用预设的设置、映射(Map…...

使用LightGlue进行图像配准并提取图像重叠区域

发表日期:2023年6月23日 项目地址:https://github.com/cvg/LightGlue https://github.com/cvg/glue-factory/ LightGlue是一个在精度上媲美Superglue,但在速度上比Superglue快一倍的模型。通过博主实测,LightGlue的配准效果比Su…...

RK3568使用QT搭建TCP服务器和客户端

文章目录 一、让RK3568开发板先连接上wifi二、客户端代码1. `widget.h` 文件2. `widget.cpp` 文件**详细讲解**1. **`Widget` 类构造函数 (`Widget::Widget`)**2. **UI 布局 (`setupUI`)**3. **连接按钮的槽函数 (`onConnectClicked`)**4. **发送消息按钮的槽函数 (`onSendMess…...

解释 Java 中的垃圾回收机制,以及如何优化垃圾回收性能?

Java中的垃圾回收机制是一种自动管理内存的机制,它负责在程序运行过程中检测和清除不再被引用的对象,从而释放其占用的内存空间。 垃圾回收机制通过标记-清除、复制、标记-整理等算法实现,能够有效避免内存泄漏,提高程序的性能和…...

读写锁: ReentrantReadWriteLock

在多线程编程场景中,对共享资源的访问控制极为关键。传统的锁机制在同一时刻只允许一个线程访问共享资源,这在读写操作频繁的场景下,会因为读操作相互不影响数据一致性,而造成不必要的性能损耗。ReentrantReadWriteLock&#xff0…...

2022ACMToG | 寻找快速的去马赛克算法

文章标题:Searching for Fast Demosaicking Algorithms 1. Abstract 本文提出了一种方法,用于在给定损失函数和训练数据的情况下,自动合成高效且高质量的去马赛克算法,涵盖各种计算开销。该方法执行多目标的离散-连续优化&#x…...

暴力破解与验证码安全

目录 前言 暴力破解:简单粗暴的黑客攻击手段 暴力破解的前提条件 暴力破解的定义与原理 常见的暴力破解工具 暴力破解的常见场景 暴力破解的危害 验证码:抵御暴力破解的第一道防线 验证码的定义与作用 验证码的工作原理 验证码的类型 验证码…...

基于区块链的数字身份认证:安全与隐私的未来

友友们好! 我的新专栏《Python进阶》正式启动啦!这是一个专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会找到: ● 深入解析:每一篇文章都将…...

ComfyUI工作流 图像反推生成人像手办人像参考(SDXL版)

文章目录 图像反推生成人像手办人像参考SD模型Node节点工作流程效果展示开发与应用图像反推生成人像手办人像参考 本工作流旨在通过利用 Stable Diffusion XL(SDXL)模型和相关辅助节点,实现高效的人像参考生成和手办设计。用户可通过加载定制的模型、LORA 调整和控制节点对…...

MyBatis-Plus速成指南:基本CURD

BaseMapper: MyBatis-Plus 中的基本 CURD 在内置的 BaseMapper 中都已得到了实现,我们可以直接使用接口,接口如下: // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) //p…...

K8S集群部署--亲测好用

最近在自学K8S,花了三天最后终于成功部署一套K8S Cluster集群(masternode1node2) 在这里先分享一下具体的步骤,后续再更新其他的内容:例如部署期间遇到的问题及其解决办法。 部署步骤是英文写的,最近想练…...