【每日算法】理论:AIGC算法相关 刷题:力扣哈希表回顾

上期文章

【每日算法】理论: 扩散模型+深度学习基础 刷题:力扣哈希表回顾

文章目录

  • 上期文章
  • 一、上期问题
  • 二、本期问题
      • 1、Classifier-free Guidance和Classifier Guidance
      • 2、VAE为什么会导致图像变模糊
      • 3、SD,Dall-E2两者的异同
      • 4、NMS非极大值抑制
      • 5、CNN的特点以及优势
      • 6、Stable Diffusion 怎么实现⽂本和图像的条件控制的
  • 三、力扣刷题回顾-哈希表
      • 1. 两数之和
      • 第454题.四数相加II
      • 383. 赎金信


一、上期问题

  • 交叉熵损失函数
  • SAM模型的mask encoder(掩码解码器)
  • VQVAE的优化问题
  • controlnet模型中的zero convolution模块
  • DDIM模型
  • BN、LN、IN、GN、SN的对比

二、本期问题

1、Classifier-free Guidance和Classifier Guidance

  • Classifier Guidance是在无条件生成的基础上,加上想要的类别的分类器梯度,作为引导(或者称为条件的梯度修正),就可以导出以类别作为条件的生成。首先单独预训练一个噪声鲁棒的分类器模型。然后训练一个普通的无条件Diffusion模型。Diffusion模型生成图像的采样过程中,利 用预训练好的分类器来提供条件信号。具体来说,就是每个采样步骤都计算分类器的输出,获得条件影响项,加入到Diffusion模型的更新公式中。这样就可以利用分类器的条 件信号,实现Diffusion模型在推理阶段条件生成图像的目的。
  • Classifier-Free Guidance的总体思想比较简单,不使用分类器,直接使用模型去学习条件。Classifier-Free Guidance 中,⽣成模型不仅仅学习如何根据给定的条件⽣成数据,⽽且还学习如何在没有任何条件输⼊的情况下⽣成数据。换句话说,模型既能进⾏条件⽣成,也能进⾏⽆条件⽣成。CFG的训练过程其实就是对提供的条件输入做随机的dropout,这样就可以得到一个无条件和条件提示的两个输出,然后学习二者之间的方向差指导采样过程。在⽣成过程中,Classifier-Free Guidance 允许我们在没有显式使⽤分类器或判别器的情况下调节条件⽣成的强度。这是通过“调节”(或“混合”)条件⽣成和⽆条件⽣成的输出来实现的,以此来控制⽣成内容的相关性和多样性。

Classifier Guidance 与 Classifier-Free Guidance

2、VAE为什么会导致图像变模糊

VAE编解码整体是⼀个有损过程。VAE尽管是隐变量模型,但只能推断真实分布的近似值,隐变量分布与真实分布之间的 gap 是不可度量的。可以通过优化模型结构、提升采样效率等方法减少损失。完全不减少损失的⽅案就是原图反贴。

前序问题:

  • VAE模型

AutoEncoder自动编码器、VAE变分自编码器、VQVAE量子化(离散化)的自编码器

3、SD,Dall-E2两者的异同

Dalle2通过自回归的方式逐个预测像素点,最终生成符合描述的图像。SD加⼊了Latent-Space(⼤幅降低特征维度),以及交叉注意⼒机制+Unet的步骤,更精细更可控。

前序问题:

  • DALLE2
  • stable diffusion相对于传统的diffusion的区别是什么,有什么改进
  • stable diffusion模型的网络架构
  • Stable Diffusion模型的图像优化模块是什么架构

【论文精读】DALLE2: Hierarchical Text-Conditional Image Generation with CLIP Latents
Stable Diffusion(SD)核心基础知识——(文生图、图生图)

4、NMS非极大值抑制

大多数目标检测算法(稠密预测)在得到最终的预测结果时,特征图的每个位置都会输出多个检测结果,整个特征图上会出很多个重叠的框。例如要检测一辆车,可能会有多个bbox都把这辆车给框了出来,因此需要从这些bbox中选出框得最好的,删除掉其它的。NMS非极大值抑制的功能就是筛选出一定区域内属于同一种类得分最大的框。NMS算法在每轮选取置信度最大的 Bounding Box ,接着关注所有剩下的 BBox 中与选取的 BBox 有着高重叠(IoU)的,对于IOU>阈值的相邻的检测框,NMS将其得分暴力置零,相当于直接舍弃。这一轮选取的 BBox 会被保留输出,且不会在下一轮出现。接着开始下一轮,重复上述过程:选取置信度最大 BBox ,抑制高 IoU BBox。

NMS 系列:soft,softer,weighted,iou-guided, Diou, Adaptive

5、CNN的特点以及优势

  • 局部连接:可以提取局部特征。
  • 权值共享:减少参数数量,因此降低训练难度(空间、时间消耗都少了)。
  • 可以完全共享,也可以局部共享(比如对人脸,眼睛鼻子嘴由于位置和样式相对固定,可以用和脸部不一样的卷积核)
  • 降维:通过池化或卷积stride实现。
  • 多层次结构:将低层次的局部特征组合成为较高层次的特征。不同层级的特征可以对应不同任务。

神经网络发展历程:DNN、CNN、RNN

6、Stable Diffusion 怎么实现⽂本和图像的条件控制的

stable diffusion首先通过⽂本/图像编码器将⽂本/图像信息编码,然后利用交叉注意⼒机制将信息引⼊扩散模型。SD 的 U-Net 既用到了自注意力,也用到了交叉注意力。自注意力用于图像特征自己内部信息聚合。交叉注意力用于让生成图像对齐文本,其 Q 来自图像特征,K, V 来自文本编码。

前序问题:

  • stable diffusion相对于传统的diffusion的区别是什么,有什么改进
  • stable diffusion模型的网络架构
  • Stable Diffusion模型的图像优化模块是什么架构

Stable Diffusion(SD)核心基础知识——(文生图、图生图)

三、力扣刷题回顾-哈希表

上期涉及题目:

  • 242.有效的字母异位词
  • 349. 两个数组的交集
  • 第202题. 快乐数

本期题目:

  • 1. 两数之和
  • 第454题.四数相加II
  • 383. 赎金信

1. 两数之和:

  • 给定输入:一个整数数组 nums 和一个整数目标值 target
  • 要求输出:找出数组中和为目标值target的两个整数,返回这两个整数对应的数组下标
  • 补充条件:可以假设每种输入只会对应一个答案,并且可以按任意顺序返回答案,但是数组中同一元素在答案里不同重复出现。

第454题.四数相加II:

  • 给定输入:四个整数数组 nums1、nums2、nums3 和 nums4,数组长度都是n
  • 要求输出:计算有多少个元组 (i, j, k, l)满足nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0
  • 注意事项:输出结果中的每个元素一定是唯一的,并且可以不考虑输出结果的顺序

383. 赎金信:

  • 给定输入:两个字符串:ransomNote 和 magazine
  • 要求输出:返回 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。
  • 注意事项:magazine 中的每个字符只能在 ransomNote 中使用一次。

对比分析:
当遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。1. 两数之和问题中可以通过一个哈希表来存储已经遍历过的元素对应的下标,就可以在遍历一个元素之后,判断target-当前元素是否也出现在这个哈希表里过,如果出现了就说明存在满足和为target的一个两数组合。第454题.四数相加II问题可以看做是两个数之和的两数之和问题,因此只需要在1. 两数之和问题的基础上增加一层遍历即可。具体来说就是先遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到字典中,然后遍历大C和大D数组,统计0-(c+d) 在dict中出现的情况。383. 赎金信和之前做过的242.有效的字母异位词很像,242.有效的字母异位词相当于求 字符串a 和 字符串b 是否可以相互组成 ,而这道题目是求 字符串a能否组成字符串b,而不用管字符串b 能不能组成字符串a。


1. 两数之和

这里哈希表的作用在于找到需要的值所对应的索引位置。

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:records=dict()for index,value in enumerate(nums):if target-value in records:return [records[target-value],index]records[value]=indexreturn []

第454题.四数相加II

四数相加之和为0,可以拆分成两个两数相加。由于该题的要求是得到满足条件的组合数,因此哈希表的作用在于记录两数相加结果的可能性次数。

class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:record=dict()for i in range(len(nums1)):for j in range(len(nums2)):record[nums1[i]+nums2[j]]=record.get(nums1[i]+nums2[j],0)+1count=0for i in range(len(nums3)):for j in range(len(nums4)):target=nums3[i]+nums4[j]if 0-target in record:count+=record[0-target]return count

383. 赎金信

class Solution:def canConstruct(self, ransomNote: str, magazine: str) -> bool:ransomNote_count=[0]*26magazine_count=[0]*26for i in ransomNote:ransomNote_count[ord(i)-ord('a')]+=1for j in magazine:magazine_count[ord(j)-ord('a')]+=1return all(ransomNote_count[i]<=magazine_count[i] for i in range(26))

参考:
代码随想录算法训练营第五天|哈希表理论基础,242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和
代码随想录算法训练营第六天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和,总结

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

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

相关文章

【汇编】_Visual Studio2019写32位汇编

目录 第一步&#xff1a;创建新项目 1. 空项目—下一步 2. 选择位置—填写项目名—创建 第二步&#xff1a;项目生成依赖项 1. 右击项目名—生成依赖项—生成自定义 2. 选中masm—确定 第三步&#xff1a;创建源文件 1. 源文件—添加—新建项 2. 选择C文件—创建新文件…

链表实现学生管理系统

这次我们运用链表的基础知识&#xff0c;增删改查&#xff0c;实现对学生系统进行管理&#xff0c;采用的多文件编程模式&#xff0c;接下来介绍一下什么叫做多文件编程。 程序一般分三类文件&#xff1a; 头文件( .h )。放置各种声明&#xff0c;用于被文件包含。&#xff0…

Android Studio中查看和修改project的编译jdk版本

android studio中查看和修改project的编译jdk版本操作如下&#xff1a; File->settings->Build,Execution,deployment->Build Tools->Gradles 进入Gradles页面可以查看并修改project的编译jdk版本&#xff0c;如图所示

安卓远离手机app

软件介绍 远离手机是专门为防止年轻人上瘾而打造的生活管理类的软件,适度用手机&#xff0c;保护眼睛&#xff0c;节约时间。 下载 安卓远离手机app

设计模式之解释器模式讲解

概念&#xff1a;是一种按照规定语法对表达式进行解析的方案。给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子。 抽象表达式&#xff1a;定义表达式需要实现的操作。终结符表达式&#xff1a;实…

Python学习从0到1 day21 第二阶段 面向对象 ④ 类型注解

仗剑红尘已是癫&#xff0c;有酒平步上青天 —— 24.4.7 一、变量的类型注解 学习目标 1.理解为什么使用类型注解 2.掌握变量的类型注解语法 为什么使用类型注解 tip&#xff1a;CTRLP&#xff0c;可以提示函数中传入的参数 当我们需要使用pycharm的自动补全功能&#xff0c;又…

java 创建线程的方式

在 Java 中&#xff0c;创建线程有以下几种方式&#xff1a; 继承 Thread 类&#xff1a;创建一个类并继承 Thread 类&#xff0c;重写 run() 方法来定义线程执行的任务。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("Threa…

Google视觉机器人超级汇总:从RT、RT-2到AutoRT/SARA-RT/RT-Trajectory、RT-H

前言 随着对视觉语言机器人研究的深入&#xff0c;发现Google的工作很值得深挖&#xff0c;比如RT-2 ​想到很多工作都是站在Google的肩上做产品和应用&#xff0c;​Google真是科技进步的核心推动力&#xff0c;做了大量大模型的基础设施&#xff0c;服(推荐重点关注下Googl…

Excel 多选实现

代码 Private Sub Worksheet_Change(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String If Target.Count > 1 Then GoTo exitHandlerOn Error Resume Next Set rngDV Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exi…

Cherno CPP学习笔记-01-背景知识

0、工具网站收集 C语言版本特性 https://en.cppreference.com https://www.cplusplus.com https://www.tutorialspoint.com/cplusplus https://www.learncpp.com https://github.com/fffaraz/awesomecpp https://stackoverflow.com 网页CPP编译器 [C] gcc 12.1.0 - Wa…

【华为OD机试C++】单词倒排

《最新华为OD机试题目带答案解析》:最新华为OD机试题目带答案解析,语言包括C、C++、Python、Java、JavaScript等。订阅专栏,获取专栏内所有文章阅读权限,持续同步更新! 文章目录 描述输入描述输出描述示例1示例2代码描述 对字符串中的所有单词进行倒排。 说明: 1、构成单…

Python人工智能应用--图像识别深度学习

1.像素 像素(缩写为px)是图像中的最小单位&#xff0c;由一个个小方格组成。 这些小方格都有一个固定的位置和颜色&#xff0c;共同决定了图像所呈现出来的样子。 2.分辨率 这些小方格的行数与列数又被叫做分辨率。我们常说的某幅图像的分辨率是1280720&#xff0c;指的就是…

设计模式之状态模式讲解

概念&#xff1a;又称为状态对象模式&#xff0c;该模式允许一个对象在其内部状态改变时改变其行为。状态模式的核心是封装&#xff0c;状态的变更引起行为的变动&#xff0c;从外部看来就好像该对象对应的类发生改变一样。 抽象状态&#xff1a;用以封装环境对象的一个特定状态…

Qt使用插件QPluginLoader 机制开发

简介&#xff1a; 插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。 Qt 提供了2种APIs来创建插件&#xff1a; 一种高级API&#xff0c;用于为Qt本身编写插件&#xff1a;自定义数据库驱动程序&#xff0c;图像格…

计算机网络-运输层

运输层 湖科大计算机网络 参考笔记&#xff0c;如有侵权联系删除 概述 运输层的任务&#xff1a;如何为运行在不同主机上的应用进程提供直接的通信服务 运输层协议又称端到端协议 运输层使应用进程看见的好像是在两个运输层实体之间有一条端到端的逻辑通信信道 运输层为应…

导出加入域控的电脑清单

要导出加入域控的所有电脑清单&#xff0c;包括计算机名等基本信息&#xff0c;可以使用 PowerShell 中的 Get-ADComputer cmdlet。下面是一个基础示例脚本&#xff0c;用于从Active Directory (AD)中批量导出所有加入域的计算机名称及可能的其他相关信息&#xff0c;并将其保存…

嘉轩智能工业科技诚邀您参观2024第13届生物发酵展

参展企业介绍 自2005年成立以来&#xff0c;嘉轩一直致力于工业智能永磁滚筒的研发、制造及销售&#xff0c;具有十多年的从业经验&#xff0c;公司主营产品包括工业智能永磁滚筒、机电智能诊断、工业智能电机等&#xff0c;高效智能自驱动永磁滚筒为我公司目前主导产品&#x…

thinkphp6使用阿里云SDK发送短信

使用composer安装sdk "alibabacloud/dysmsapi-20170525": "2.0.24"封装发送短信类 发送到的短信参数写在env文件里面的 #发送短信配置 [AliyunSms] AccessKeyId "" AccessKeySecret "" signName"" templateCode"&…

SpringFramework实战指南(八)

SpringFramework实战指南(八) 5.1 场景设定和问题复现5.2 解决技术代理模式5.1 场景设定和问题复现 准备AOP项目 项目名:spring-aop-annotation pom.xml <dependencies><!--spring context依赖--><!--当你引入Spring Context依赖之后,表示将Spring的基础依赖…

第四十七章 为 Web 应用程序实现 HTTP 身份验证

文章目录 第四十七章 为 Web 应用程序实现 HTTP 身份验证Apache 中的标准 HTTP 身份验证 (mod_auth)在处理请求的同时在 CSP 中进行身份验证。 第四十七章 为 Web 应用程序实现 HTTP 身份验证 Apache 模块&#xff08;mod_csp*.so/dll 和 CSPa*[Sys].so/dll&#xff09;允许 I…