OpenAI发布Sora技术报告深度解读!真的太强了!
😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:洲与AI。
🎈 本文专栏:本文收录于洲洲的【AI+GPT前沿科技】系列专栏,欢迎大家关注本专栏~专栏一键跳转
🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。
🌼 同时洲洲已经建立了程序员技术交流群,如果您感兴趣,可以私信我加入我的社群~社群中将不定时分享各类福利
🖥 随时欢迎您跟我沟通,一起交流,一起成长、进步!点此即可获得联系方式~
导读
大家好,我是小洲。
昨天OpenAI推出的文生成视频大模型Sora可谓是在科技媒体头条一时风头无两,大放异彩。其惊人的逼真细节、流畅的视频动作,以及准确的文本语义还原令人惊叹。许多媒体、科技专家和电影导演纷纷指出,Sora的亮相不仅使一直在该领域深耕的Pika、Stability等知名企业相形见绌,甚至可能对整个影视行业产生颠覆性影响。
Sora主要令人惊艳的点在于可以生成60s的高清视频,一镜到底,并且多个场景镜头无缝衔接,视频主体不变,各个物体间的物理位置关系不变。
今天OpenAI发布了Sora的技术报告,我们来仔细研读一下Sora的技术原理~
(Sora官方技术报告链接:https://openai.com/research/video-generation-models-as-world-simulators)
报告总览
首先我们来梳理一下Sora报告的技术要点:
- 模型训练
1、Sora的架构是扩散模型Diffusion Model和Transformer.
在最开始的文生视频领域,常用的有RNN\GAN\DM模型。Sora属于扩散模型。
扩散模型展现出卓越的优势,相较于GAN而言,它在生成多样性和训练稳定性方面更为出色。最为关键的是,在图片和视频生成领域,扩散模型呈现出更为广阔的发展空间。相较于GAN模型本质上是机器对人的模仿,扩散模型更像是机器真正学会了“成为一个人”。这不仅突显了其在生成领域的前沿地位,还彰显了其在理解和模拟人类特质方面的独特能力。因此,扩散模型不仅在技术上取得了显著的进步,更为全面地超越了传统的生成对抗网络。
说得直白一点,GAN模型就像是一位学徒,他一边不停地对着样本作画,一边接受着老师的不断评分以进行提升“训练”(生成器和判别器的相互博弈)。最终画家可能取得了不小的进步画出逼真的作品,但整个过程难以精确控制,有时候会走火入魔,输出一些难以理解的内容。而且,他的进步主要是在不断地模仿先前的作品,缺乏创造性。
相比之下,扩散模型则更像是一位勤奋且聪明的创作者。他不仅仅是机械地仿作,而是在学习大量作品的同时,深刻理解图像内涵及图像之间的关系。他具备对图像上的“美”和某种“风格”进行思考的能力,从而更有前途。不同于GAN的局限性,扩散模型在创造性方面表现更出色,为未来的发展提供了更广阔的可能性。
2、Sora模型在训练时是先用预训练模型把各种不同的视频源文件编码统一都转化为Patch表示,接着把时空要素作为Transformer的token进行训练。
大型语言模型之所以在之前取得成功,关键在于Token的出色应用。Token这一概念,可被视作一种巧妙的工具,它成功地将代码、数学以及各种自然语言有机地统一在一起,为进行大规模训练提供了高效而便捷的手段。这种统一不仅简化了模型的训练过程,还促使了不同领域知识的有效交融,为模型的全面学习提供了有力支持。
在视频模型Sora的训练中,OpenAI巧妙地将Token的思想延伸,并引入了“Patch”概念。这里,“Patch”可以被译为图块,这一概念的引入进一步加强了对视频信息的处理能力。通过将Token理解为词元,我们可以将“Patch”视为对图像信息进行分块处理的有效手段,为Sora在处理视频生成时提供了更灵活和精准的工具。
需要强调的是,在大型语言模型的成功背后,Token并非孤立存在。其背后还有Transformer架构的协同作用,这个架构为模型提供了更为智能和高效的学习方式。Transformer架构与Token相辅相成,相互配合,使得模型在各个层面都能更好地理解和处理复杂信息。
因此,Sora作为一种视频生成扩散模型,与主流采用U-Net架构的视频生成扩散模型不同,选择采用了Transformer架构。这种创新设计不仅使Sora在视频生成领域具备独特的优势,还为模型在理解和处理更丰富、更复杂信息方面开辟了新的可能性。这样的前瞻性设计使得Sora在实际应用中表现抢眼,并为视频生成技术的进一步发展贡献了重要的经验和启示。
- 特点
1、自然语言的理解能力大大增强,可以贴切的理解prompt提示词。
2、可以将视频内容主体的特征保持不变。
3、可以生成长达60s的高清一镜到底视频(之前所有的文生视频大模型几乎都只能生成10s以内的视频内容)。
4、可以实现视频补全、视频延伸等等。
5、已经对真实的物理世界有了认知,可以自然理解一些简单的物理世界原理并做出视频。
Sora报告
(1) 将视觉数据转化为补丁
借鉴于大型语言模型的成功经验,这些模型通过海量的互联网数据训练,具备出色的通用能力。LLM范式的成功得益于其巧妙运用标记,这些标记巧妙地统一了文本、代码、数学以及各种自然语言模式。在研究中OpenAI思考了视觉数据生成模型如何能够继承并运用这些优势。相较于LLM拥有文本标记,Sora则通过引入视觉补丁实现其目标。过去的研究已经证明,补丁在表示视觉数据模型时是一种有效的方式。发现表明,补丁是一种高度可扩展和有效的表示方式,适用于在不同类型的视频和图像上进行生成模型的训练。在更高层面上,首先将视频压缩至较低维的潜在空间,然后通过将表示分解为时空补丁的方式,成功地将视频转换为补丁形式。这一方法为训练生成模型提供了更灵活、更有效的手段。
(2) 视频压缩网络
通过训练网络成功实现了对视觉数据维度的降低。这个网络以原始视频为输入,输出在时间和空间上经过压缩的潜在表示。Sora在这一压缩的潜在空间中接受训练,进而生成出新的视频。为了完善这一过程进行了解码器模型的训练,它能够将生成的潜在表示映射回像素空间,为最终的视觉输出提供了高质量的还原。
这个创新性的方法不仅能够在降低数据维度的同时保持信息的关键性,还为视觉数据处理领域带来了更为高效和灵活的解决方案。
(3) 时空潜补丁
这个“潜”,可以理解成“降维”或者“压缩”,意在用更少的信息去表达信息的本质。
给定一个压缩的输入视频,提取一系列时空补丁,充当变压器令牌。该方案也适用于图像,因为图像只是具有单帧的视频。基于补丁的表示使 Sora 能够对不同分辨率、持续时间和长宽比的视频和图像进行训练。在推理时可以通过在适当大小的网格中排列随机初始化的补丁来控制生成视频的大小。
(4) 改进的框架和构图
基于原始视频的长宽比进行训练有助于改善构图和取景效果。特别将Sora与一种常见的训练生成模型方式进行比较,即将所有训练视频裁剪为正方形的模型版本。在方形裁剪的模型训练中,有时会产生仅显示部分主体的视频的情况。相比之下,Sora模型的视频在取景效果上表现更佳,通过保留原始长宽比,成功改进了视频的构图,使其更加完整和有吸引力。
(5) 语言理解
为了训练文本到视频生成系统采用具备相应文本字幕的大量视频。引入了DALL·E 3中的重新字幕技术,首先培训了一个高度描述性的字幕生成器模型,并将其用于为训练集中的所有视频生成文本字幕。这一过程的关键是通过对高度描述性视频字幕的训练,提高文本的保真度,从而提升整体视频质量。
与DALL·E 3相似,巧妙地利用GPT将短小的用户提示转换为更为详细的字幕,然后将其发送到视频模型。这一策略使得Sora能够生成高质量视频,准确地符合用户的提示,为用户提供了更加个性化和令人满意的视觉体验。
(6) 通过图像和视频进行提示
Sora 也可以通过其他输入进行提示,例如预先存在的图像或视频。此功能使 Sora 能够执行各种图像和视频编辑任务 - 创建完美的循环视频、动画静态图像、及时向前或向后扩展视频等。
总结
Hello,各位看官老爷们好,洲洲已经建立了CSDN技术交流群,如果你很感兴趣,可以私信我加入我的社群。
📝社群中不定时会有很多活动,例如每周都会包邮免费送一些技术书籍及精美礼品、学习资料分享、大厂面经分享、技术讨论、行业大佬创业杂谈等等。
📝社群方向很多,相关领域有Web全栈(前后端)、人工智能、机器学习、自媒体变现、前沿科技文章分享、论文精读等等。
📝不管你是多新手的小白,都欢迎你加入社群中讨论、聊天、分享,加速助力你成为下一个技术大佬!也随时欢迎您跟我沟通,一起交流,一起成长。变现、进步、技术、资料、项目、你想要的这里都会有
📝网络的风口只会越来越大,风浪越大,鱼越贵!欢迎您加入社群~一个人可以或许可以走的很快,但一群人将走的更远!
📝关注我的公众号(与CSDN同ID:程序员洲洲)可以获得一份Java 10万字面试宝典及相关资料!~
📝想都是问题,做都是答案!行动起来吧!欢迎评论区or后台与我沟通交流,也欢迎您点击下方的链接直接加入到我的交流社群!~ 跳转链接社区~
相关文章:
OpenAI发布Sora技术报告深度解读!真的太强了!
😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:洲与AI。 🎈 本文专栏:本文收录…...
AJAX——接口文档
1 接口文档 接口文档:描述接口的文章 接口:使用AJAX和服务器通讯时,使用的URL,请求方法,以及参数 传送门:AJAX阶段接口文档 <!DOCTYPE html> <html lang"en"><head><meta c…...
leetcode hot100不同路径
本题可以采用动态规划来解决。还是按照五部曲来做 确定dp数组:dp[i][j]表示走到(i,j)有多少种路径 确定递推公式:我们这里,只有两个移动方向,比如说我移动到(i,j&#x…...
【前端工程化面试题目】webpack 的热更新原理
可以在顺便学习一下 vite 的热更新原理,请参考这篇文章。 首先有几个知识点需要明确 热更新是针对开发过程中的开发服务器的,也就是 webpack-dev-serverwebpack 的热更新不需要额外的插件,但是需要在配置文件中 devServer属性中配置&#x…...
不花一分钱,在 Mac 上跑 Windows(M1/M2 版)
这是在 MacOS M1 上体验最新 Windows11 的效果: VMware Fusion,可以运行 Windows、Linux 系统,个人使用 licence 免费 安装流程见 👉 https://zhuanlan.zhihu.com/p/452412091 从申请 Fusion licence 到下载镜像,再到…...
Attempt to call an undefined function glutInit
Attempt to call an undefined function glutInit 解决方法: 从这里下载PyOpenGL 的whl安装文件, https://drive.google.com/drive/folders/1mz7faVsrp0e6IKCQh8MyZh-BcCqEGPwx 安装命令举栗 pip install PyOpenGL-3.1.7-cp39-cp39-win_amd64.whl pi…...
AB测试最小样本量
1.AB实验过程 常见的AB实验过程,分流-->实验-->数据分析-->决策:分流:用户被随机均匀的分为不同的组实验:同一组内的用户在实验期间使用相同的策略,不同组的用户使用相同或不同的策略。数据收集:…...
在Spring中事务失效的场景
在Spring框架中,事务管理是通过AOP(面向切面编程)实现的,主要依赖于Transactional注解。然而,在某些情况下,事务可能会失效。以下是一些可能导致Spring事务失效的常见场景: 非public方法&#…...
Rust 学习笔记 - 变量声明与使用
前言 任何一门编程语言几乎都脱离不了:变量、基本类型、函数、注释、循环、条件判断,这是一门编程语言的语法基础,只有当掌握这些基础语法及概念才能更好的学习 Rust。 变量介绍 Rust 是一种强类型语言,但在声明变量时…...
windows 下跑起大模型(llama)操作笔记
原贴地址:https://testerhome.com/topics/39091 前言 国内访问 chatgpt 太麻烦了,还是本地自己搭一个比较快,也方便后续修改微调啥的。 之前 llama 刚出来的时候在 mac 上试了下,也在 windows 上用 conda 折腾过,环…...
人工智能专题:基础设施行业智能化的基础设施,自智网络双价值分析
今天分享的是人工智能系列深度研究报告:《人工智能专题:基础设施行业智能化的基础设施,自智网络双价值分析》。 (报告出品方:埃森哲) 报告共计:32页 自智网络驱动的电信产业变革 经过多年的…...
docker 编译安装redis脚本
在Docker中编译安装Redis通常不是一个常见的做法,因为Redis官方提供了预编译的Docker镜像,这些镜像包含了已经编译好的Redis二进制文件。不过,如果你有特殊需求,想要自己从源代码编译Redis并打包成Docker镜像,你可以使…...
鸿蒙开发系列教程(二十三)--List 列表操作(2)
列表样式 1、设置内容间距 在列表项之间添加间距,可以使用space参数,主轴方向 List({ space: 10 }) { … } 2、添加分隔线 分隔线用来将界面元素隔开,使单个元素更加容易识别。 startMargin和endMargin属性分别用于设置分隔线距离列表侧…...
C#根据权重抽取随机数
(游戏中一个很常见的简单功能,比如抽卡抽奖抽道具,或者一个怪物有多种攻击动作,按不同的权重随机出个攻击动作等等……) 假如有三种物品 A、B、C,对应的权重分别是A(50),…...
SORA:OpenAI最新文本驱动视频生成大模型技术报告解读
Video generation models as world simulators:作为世界模拟器的视频生成模型 1、概览2、Turning visual data into patches:将视觉数据转换为补丁3、Video compression network:视频压缩网络4、Spacetime Latent Patches:时空潜在…...
阿里云第七代云服务器ECS计算c7、通用g7和内存r7配置如何选择?
阿里云服务器配置怎么选择合适?CPU内存、公网带宽和ECS实例规格怎么选择合适?阿里云服务器网aliyunfuwuqi.com建议根据实际使用场景选择,例如企业网站后台、自建数据库、企业OA、ERP等办公系统、线下IDC直接映射、高性能计算和大游戏并发&…...
视觉slam十四讲学习笔记(六)视觉里程计 1
本文关注基于特征点方式的视觉里程计算法。将介绍什么是特征点,如何提取和匹配特征点,以及如何根据配对的特征点估计相机运动。 目录 前言 一、特征点法 1 特征点 2 ORB 特征 FAST 关键点 BRIEF 描述子 3 特征匹配 二、实践:特征提取…...
PyTorch-线性回归
已经进入大模微调的时代,但是学习pytorch,对后续学习rasa框架有一定帮助吧。 <!-- 给出一系列的点作为线性回归的数据,使用numpy来存储这些点。 --> x_train np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.168],[9.779], [6.1…...
C++数据结构与算法——栈与队列
C第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更…...
掌上新闻随心播控,HarmonyOS SDK助力新浪新闻打造精致易用的资讯服务新体验
原生智能是HarmonyOS NEXT的核心亮点之一,依托HarmonyOS SDK丰富全面的开放能力,开发者只需通过几行代码,即可快速实现AI功能。新浪新闻作为鸿蒙原生应用开发的先行者之一,从有声资讯入手,将基于Speech Kit朗读控件上线…...
2024年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2024年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供,危险化学品经营单位主要负责人证模拟考试题库是根据危险化学品经营单位主…...
C/C++如何把指针所指向的指针设为空指针?
实践出真知,指针对于初学的友友来说,头都要大了。喵喵一直遵循在实践中学,在学习中实践,相信你也会有所得! 以下是该问题的解决方案: int** ptrPtr new int*; // 创建指向指针的指针 int* ptr new int;…...
第三节:基于 InternLM 和 LangChain 搭建你的知识库(课程笔记)
视频链接:https://www.bilibili.com/video/BV1sT4y1p71V/?vd_source3bbd0d74033e31cbca9ee35e111ed3d1 文档地址: https://github.com/InternLM/tutorial/tree/main/langchain 课程笔记: 1.仅仅包含训练时间点之前的数据,无法…...
qt-C++笔记之打印所有发生的事件
qt-C笔记之打印所有发生的事件 code review! 文章目录 qt-C笔记之打印所有发生的事件1.ChatGPT问答使用 QApplication 的 notify 方法使用 QObject 的 event 方法 2.使用 QObject 的 event 方法3.使用 QApplication 的 notify 方法 1.ChatGPT问答 在Qt C中,若要打…...
pytorch 实现线性回归(深度学习)
一 查看原始函数 初始化 %matplotlib inline import random import torch from d2l import torch as d2l 1.1 生成原始数据 def synthetic_data(w, b, num_examples):x torch.normal(0, 1, (num_examples, len(w)))y torch.matmul(x, w) bprint(x:, x)print(y:, y)y tor…...
[Doris] Doris的安装和部署 (二)
文章目录 1.安装要求1.1 Linux操作系统要求1.2 软件需求1.3 注意事项1.4 内部端口 2.集群部署2.1 操作系统安装要求2.2 下载安装包2.3 解压2.4 配置FE2.5 配置BE2.6 添加BE2.7 FE 扩容和缩容2.8 Doris 集群群起脚本 3.图形化 1.安装要求 1.1 Linux操作系统要求 1.2 软件需求 1…...
【QT+QGIS跨平台编译】之三十五:【cairo+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
文章目录 一、cairo介绍二、文件下载三、文件分析四、pro文件五、编译实践一、cairo介绍 Cairo是一个功能强大的开源2D图形库,它提供了一套跨平台的API,用于绘制矢量图形和文本。Cairo支持多种输出目标,包括屏幕、图像文件、PDF、SVG等。 Cairo的设计目标是简单易用、高效…...
MySQL(基础)
第01章_数据库概述 1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多…...
STM32F1 - 中断系统
Interrupt 1> 硬件框图2> NVIC 中断管理3> EXTI 中断管理3.1> EXTI与NVIC3.2> EXTI内部框图 4> 外部中断实验4.1> 实验概述4.2> 程序设计 5> 中断向量表6> 总结 1> 硬件框图 NVIC:Nested Vectored Interrupt Controller【嵌套向量…...
【Linux系统化学习】缓冲区
目录 缓冲区 一个样例 现象解释 缓冲区存在的位置 缓冲区 在刚开始学习C语言的时候我们就听过缓冲区这个名词,很是晦涩难懂;在Linux下进程退出时也包含缓冲区,因此缓冲区到底是什么?有什么作用? 让我们先从一个小…...
基于BP算法的SAR成像matlab仿真
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 BP算法的基本原理 4.2 BP算法的优点与局限性 5.完整工程文件 1.课题概述 基于BP算法的SAR成像。合成孔径雷达(SAR)是一种高分辨率的雷达系统,能够在各种天气和光…...
【C++ STL】你真的了解string吗?浅谈string的底层实现
文章目录 底层结构概述扩容机制浅拷贝与深拷贝插入和删除的效率浅谈VS和g的优化总结 底层结构概述 string可以帮助我们很好地管理字符串,但是你真的了解她吗?事实上,string的设计是非常复杂的,拥有上百个接口,但最常用…...
17.3.1.3 灰度
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 灰度的算法主要有以下三种: 1、最大值法: 原图像:颜色值color(R,G,B&a…...
基于CAS操作的atomic原子类型
在上一节的卖票程序中,我们讲解了如何在多线程中保证临界资源的正确访问——使用互斥锁,即 lock_guard<mutex> lock(mtx); count;lock_guard<mutex> lock(mtx); count--; 从汇编角度解释线程间互斥-mutex互斥锁与lock_guard的使用-CSDN博客…...
Rust HashMap详解及单词统计示例
在Rust中,HashMap是一种非常有用的数据结构,用于存储键值对。本文将深入介绍HashMap的特性,以及通过一个单词统计的例子展示其用法。 HashMap简介 HashMap是Rust标准库提供的用于存储键值对的数据结构。它允许通过键快速查找对应的值&#…...
命令执行讲解和函数
命令执行漏洞简介 命令执行漏洞产生原因 应用未对用户输入做严格得检查过滤,导致用户输入得参数被当成命令来执行 命令执行漏洞的危害 1.继承Web服务程序的权限去执行系统命会或读写文件 2.反弹shell,获得目标服务器的权限 3.进一步内网渗透 远程代…...
外包实在是太坑了,划水三年,感觉人都废了
先说一下自己的情况,专科生,19年通过校招进入杭州某个外包软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了3年的功…...
代码随想录算法训练营第19天
77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 class Solution:def combine(self, n: int, k: int) -> List[List[int]]:path []res []def dfs(n,k,index):if len(path) k:res.append(path[:])returnfor i in range(index,n1):…...
树莓派5 EEPROM引导加载程序恢复镜像
树莓派5不能正常启动,可以通过电源led灯的闪码来判断错误发生的大致情形。 LED警告闪码 如果树莓派由于某种原因无法启动,或者不得不关闭,在许多情况下,LED会闪烁特定的次数来指示发生了什么。LED会闪烁几次长闪烁,然…...
循序渐进-讲解Markdown进阶(Mermaid绘图)-附使用案例
Markdown 进阶操作 查看更多学习笔记:GitHub:LoveEmiliaForever Mermaid官网 由于CSDN对某些Mermaid或Markdown语法不支持,因此我的某些效果展示使用图片进行 下面的笔记内容全部是我根据Mermaid官方文档学习的,因为是初学者所以…...
寒假作业2月6号
第五章 静态成员与友元 一、填空题 1、一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改num为10,并使用show()函数输出num的值10。 #include <iostream.h> class Test { private: static int num; publi…...
ChatGPT绘图指南:DALL.E3玩法大全(一)
一、 DALLE.3 模型介绍 1、什么是 DALLE.3 模型? DALLE-3模型,是一种由OpenAI研发的技术,它是一种先进的生成模型,可以将文字描述转化为清晰的图片。这种模型的名称"DALLE"实际上是"Deep Auto-regressive Latent …...
计算机服务器中了_locked勒索病毒怎么办?Encrypted勒索病毒解密数据恢复
随着网络技术的不断发展,数字化办公已经成为企业生产运营的根本,对于企业来说,数据至关重要,但网络威胁无处不在,近期,云天数据恢复中心接到很多企业的求助,企业的计算机服务器遭到了_locked勒索…...
VueCLI核心知识3:全局事件总线、消息订阅与发布
这两种方式都可以实现任意两个组件之间的通信 1 全局事件总线 1.安装全局事件总线 import Vue from vue import App from ./App.vueVue.config.productionTip false/* 1.第一种写法 */ // const Demo Vue.extend({}) // const d new Demo()// Vue.prototype.x d // 把Dem…...
Redis中缓存问题
缓存预热 Redis缓存预热是一项关键任务,可帮助提升应用程序的性能和响应速度。在高流量的应用程序中,Redis缓存预热可以加速数据查询和读取,从而改善用户体验。本文将介绍一种快速、稳定的Redis缓存预热方案,并提供相应代码实现。…...
数码管扫描显示-单片机通用模板
数码管扫描显示-单片机通用模板 一、数码管扫描的原理二、display.c的实现1、void Display(void) 各模式界面定义数据2、void BackupRamToDisRam(void)从缓存区刷新显示映射Ram3、void FreshDisplay(void) 映射显示Ram到主控的IO口4、void LcdDisplay_8bit(void) 映射显示Ram到…...
IDEA中的神仙插件——Smart Input (自动切换输入法)
IDEA中的神仙插件——Smart Input (自动切换输入法) 设置 更多功能详见官方文档:Windows版SmartInput使用入门...
shell编程:求稀疏数组中元素的和(下标不连续)
#!/bin/basharr([2]3 [5]2 [6]2 [9]1)for i in "${!arr[]}" dosum$((sumarr[i])) doneecho $sumBash 脚本中,* 和 符号在数组上下文中有不同的用途。当使用它们来遍历数组时,必须了解它们之间的区别。 * (无前置感叹号 !): 在索引…...
Rust 学习笔记 - 详解数据类型
前言 任何一门编程语言几乎都脱离不了:变量、基本类型、函数、注释、循环、条件判断,这是一门编程语言的语法基础,只有当掌握这些基础语法及概念才能更好的学习 Rust。 标量类型(Scalar Types) 在 Rust 中ÿ…...
构建本地yum源
下载repo数据文件 根据需要修改下载路径和reposync参数 #!/bin/bashlocal_path/repo/remote/rhel9 enabled_repos$(yum repolist enabled | awk NR>3{print $1}) tempfile$(mktemp -t reposync.XXXX)check() {echo "目标目录剩余空间: $(df -h ${local_path} | awk …...