【腾讯云HAI域探密】- AIGC应用助力企业降本增效之路

一、前言:

近年来,随着深度学习、大数据、人工智能、AI等技术领域的不断发展,机器学习是目前最火热的人工智能分支之一,是使用大量数据训练计算机程序,以实现智能决策、语音识别、图像处理等任务。

作者也是经过了以上几个阶段的软件开发历程,从Web时代编程、到云时代分布式编程,到如今的AI时代,传统编程是人类程序员手动编写代码来实现特定的功能,而机器学习是通过让计算机程序从数据中学习,自动地提取特征和规律来实现功能。

如何解决人工智能(机器学习)模型训练与推理、高性能计算等,往往是对于算法、算力和大数据都是实现大规模应用的必备条件。

GPU的广泛应用促进了AI技术的发展。通过GPU的高速计算能力,开发者可以更快地训练模型、测试算法,从而促进AI技术的迅速发展。GPU的出现和发展,也为AI领域的新算法、新模型的研发提供了更多的可能性。

最近腾讯云推出了一款“高性能应用服务HAI”,是一款面向 Al、科学计算的 GPU 应用服务产品,以应用为中心,匹配GPU云算力资源,AI 2.0时代 GPU 新品,预装LLM、AI作画、数据科学等高性能应用,实现即插即用,助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用。


二、即生瑜(腾讯云GPU云服务器)何生亮(高性能应用服务HAI):

平时接触的AI领域中,大多数搭载GPU云服务器的AI服务器可以覆盖更多的应用场景,尤其在人工智能领域的应用相当多。接下来,让我们先了解一下GPU云服务器的一些概念,只有知已知彼才能百战不殆,进行有效的比较优势与劣势,才能有针对性的选择权。

1. 腾讯云GPU服务器:

GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。

2. 腾讯云GPU云服务器的应用场景:

GPU计算型应用场景:

GPU渲染型应用场景:


三、高性能应用服务HAI介绍:

“高性能应用服务HAI”,它具有澎湃算力,即开即用,基于腾讯云GPU云服务器底层算力,提供开箱即用的高性能云服务。以应用为中心,匹配GPU云算力资源,助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用。

尤其值得一提的是针对开发者,使用可视化的webUI界面和“可视化IDE”的jupyterlab大大的降低了调试的复杂度、降低应用使用的门槛,甚至经过简单的培训,让非开发者(运维人员)也可以参与到使用中来。

1. 横向对比,青出于蓝:

在以往都是自己组合搭建大多数搭载GPU云服务器的AI服务器可以覆盖更多的应用场景,如图形渲染、深度学习、天体物理、化学分子计算、云计算和虚拟化、计算密集型行业等应用。

高性能应用服务HAI的产品的价值:
大幅降低GPU云服务器使用门槛,多角度优化产品使用体验,低门槛、开箱即用。

2. 多种高性能应用部署场景,轻松拿捏:

3. 腾讯云高性能应用服务 HAI动手实验:

本次活动是由腾讯云和CSDN联合推出的开发者技术实践活动。通过动手实验的形式,带您深入沉浸式体验腾讯云高性能应用服务 HAI 。

  • 第一个实验手册:如何利用HAI轻松拿捏AI作画
  • 第二个实验手册:未来对话:HAI创作个人专属的知识宇宙
  • 第三个实验手册:融合创新:HAI推动Pytorch2.0 AI框架新时代

活动提供的手册也是非常的详细,可以快速体验一下腾讯云高性能应用服务 HAI相关的AI产品,活动将覆盖多个应用场景,无论您是技术新手还是经验丰富的开发者,都可以从活动中汲取到技术上的精华。


四、Stable Diffusion介绍:

1. Stable Diffusion:

Stable Diffusion是一种基于扩散过程的图像生成模型,可以生成高质量、高分辨率的图像。它通过模拟扩散过程,将噪声图像逐渐转化为目标图像。这种模型具有较强的稳定性和可控性,可以生成具有多样化效果和良好视觉效果的图像。

Stable Diffusion 可以通过生成多样化、高质量的图像、修复损坏的图像、提高图像的分辨率和应用特定风格到图像上等方式,辅助视觉创意的实现。它为视觉艺术家、设计师等提供更多的创作工具和素材,促进视觉艺术领域的创新和发展。

2. 对比一下GPU服务器自行部署痛点:

打开腾讯云GPU服务器控制台进行购买实例。

2.1 安装基本软件:

sudo apt install wget git

2.1 安装python 3.10.6:

# 安装依赖
sudo apt install wget git python3 python3-venv
# 删除默认的低版本
which python3
sudo rm /usr/bin/python
# 配置软链接
ls -lh /usr/bin | grep python
ln -s /usr/bin/python3 /usr/bin/python
# 若是GPU环境的用户需要安装与cuda版本对应的torch
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
# pip换源
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
# 安装对应依赖pip install -r requirements_versions.txt
# 建立虚拟环境
sudo apt-get install python3.5-venv
python3 -m venv_name
source venv_name/bin/activate

2.2 安装CUDA:

# 下载Cuda
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
# 安装cuda
sudo sh cuda_11.8.0_520.61.05_linux.run
# 配置环境变量
# 增加下面两行内容,并保存
vim ~/.bashrc
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
# 使配置文件生效
source ~/.bashrc

2.3 安装stable diffusion:

# 拉取stable diffusion 代码:
git clone GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
# 安装stable diffusion:
cd stable-diffusion-webui/
# 启动
./webui.sh

以上是自行尝试购买腾讯云GPU服务器,自己手动搭建环境,并运行stable diffusion。大概花费了差不多一个下午的时间,而且这个还是自己以前尝鲜有过经验的前提下。

3. 对比HIA产品的提效:

通过完成官方提供的第一个动手实验,如何利用HAI轻松拿捏AI作画。我们大概只花了不到10分钟就可以从购买到使用stable diffusion开始作画,并且不到20分钟就能完成动手的实验(如下图),网上有太多的文章描述如何使用,这里就不去“鹦鹉学舌”重复赘述了。

可以看出以下的对比,“自己选购部署”与“高性能应用服务HAI”在以下7点存在业务痛点,“高性能应用服务HAI”大大的降低了使用的门槛、降低了学习的成本,让更多的企业、开发者能够加入到AI应用的行业中来。


五、“高性能应用服务HAI”的应用给公司业务提效方案可行性评估:

自从AIGC人工智能生成内容的来临,在过去的一段时间里,以Stable Diffusion 为代表的 AIGC 绘画迎来了爆发式增长,引发了一场生产力的革命。

1. Stable Diffusion AI绘画帮助设计师降本增效方案评估:

在传统的设计团队,通常的设计师的工作流程如下:

  • 运营提出商业意图与图形的要求
  • 设计在“千图网”找一些符合要求的参考图,或者自己手工画一些设计的初稿
  • 在与业务确认沟通风格和草图,再跟业务确认,是否符合业务的要求
  • 设计进行建模,并且针对一些细化的设计进行调整
  • 最终,设计定稿,交付设计图

在这个设计的阶段过程中,交付给业务团队的耗时点如下:

  • 设计师往往需要在“千图网”找大量的参考图,这个过程是比较费事也费劲的,一般需要半个工作日的倍数。
  • 如果遇到一些比较复杂的交互,设计师还需要自己手画设计草图,也是比较费时间的。

现在有了AIGC绘画的工具辅助后,可以极大地缩短找参考图及建模设计草图时间,同时也减少了与业务反复沟通确认的时间。使用Stable Diffusion生成设计参考图,可以快速与业务确认设计风格,绘制线稿草图后,再通过 Stable Diffusion 直接生成设计图,设计师再做细节优化,大大提升了整个设计流程的效率。甚至,简单的绘图可以直接交付由业务单位来完成。

2. Pytorch模型AI图像识别帮助业务单位降本增效方案评估:

PyTorch是Facebook人工智能研究院(FAIR)开发的一个开源机器学习库,它使用Python语言编写,支持动态计算图和分布式训练。

案例一:
在理赔的业务中,往往会遇到车辆的刮蹭、车辆恶意损坏、划痕等理赔案例时,往往需要参考大量的案例。
业务痛点:
①. 如果招的熟悉的业务人员,可能比较能快速的凭借处理的经验来解决实际的问题。
②. 如果新招人力、新的场景、新的客户可能会遇到处理不及时的问题。
改善措施:
①. 通过使用pytorch实现以图搜图可以快速的在案例池中找到匹配的案例。
②. 增加车辆赔付的参考依据与标准化,提高工作的效率,降低人员的成本。

案例二:
在理赔凭证审核环节,由于经常发生将申请材料与历史凭证中高度相似的理赔凭证,从而存在理赔欺骗的问题,有点类似常说的“骗保”。
业务痛点:
①. 人工刷选不精确、且耗时较长,效率低下。
改善措施:
①. 使用pytorch实现相同图片搜索技术,在出现异常时,将案例流转至人工复审流程。
②. 在提升理赔审核效率的同时,打击盗用冒用等欺诈行为,从而降低保理赔风险。


六、Stable Diffusion AI绘画实际案例参考:

1. AI图像处理:

在实际的工作场景中,经常会遇到商务部门需要做各种活动、手册、邀请活动等物料,一般没有特别说明的话,不会考虑很多场景,比如“易拉宝”、“海报”、“刊物设计印刷”等的场景中,图片在放大时,会在分辨率、清晰度要求更高场景中,会出现模糊、看不清的效果。

如上,需要运用在更大背景区域上,如果采用直接放大设计文件,一般会出现文件内的非矢量元素就会模糊,导致在分辨率、清晰度要求更高场景中,会出现模糊、看不清的效果,此时,可以借助Stable Diffusion放大修复并提升图片清晰度,节省重绘的人力成本。

下面来介绍一下Stable Diffusion几种AI的放大算法:后期处理、脚本UItimate SD插件方案,当然,还有其它很多的方案。做放大算法高清修复、高清放大的时候,对于一张图片的聚焦点在哪里。

1.1 后期处理方案:

序号 操作 描述
1 点击“Extras”选项卡 ①. 对应中文“后期处理”
2 上传需要高清放大的图片 ①. Single Image(单张图片)可以处理一张图片
②. Batch Process(批量处理)可以上传多张图片
③. Batch Process Directory(批量处理文件夹)可以选择一个需要批量处理图片的文件夹目录
3 在“Scale By(缩放倍数)”输入需要缩放的比例 ①. 可以根据自己的需求来设定这个值,来调整需要放大的倍数
4 Upscaler1表示放大的算法 ①. 推荐选择“R-ESRGAN 4x+”、“R-ESRGAN 4x+ Anime6B”这2个算法模型
5 点击“Generate”生成图片

1.2 “脚本插件”方案:

序号 操作 描述
1 点击“Extensions”选项卡 ①. 对应中文“扩展”,可以管理已安装的插件
2 点击“script”脚本
3 点击“Load form”加载扩展列表 ①. 可以看到这个扩展列表是加速过的清单列表
②. 这里会有一个加载loading的时间等待
③. 如果加载完成后,进入左下图片
4 在搜索区域搜索“Ultimate SD” ①. 这里可以搜索已安装过的,或者没有下载过的插件
②. 如果有符合条件的插件就会在下面进行显示,并且显示安装的状态
5 点击“Install”进行“Ultimate SD”插件的安装 ①. 安装完成后,进入右上图片
6 在“Extensions”选项卡中,查看是否安装成功 ①. 可以查看“Ultimate SD”插件是否安装成功
7 “Ultimate SD”插件安装的信息
8 切换到“Setting”设置选项卡中
9 点击“Reload UI”进行重新启动

1.3 小结:

2. 业务推广海报生成:

在设计前期,设计师刚接到需求,了解到画面内容元素,设计风格后,会在花瓣等网站找对应的参考图给业务方确认,此时,可能还要配合适当的草图来表现画面的构图、元素等。

但这样的参考图往往不能很好的传达设计师的设计想法,且找到合适图的耗时都会比较长,这时候如果通过 Stable Diffusion输入相关关键词就可生成灵感参考图。

以上图,节日海报以中秋主题为例,生成一些海报分享朋友圈。可以利用Stable Diffusion的能力,通过“咒语”直接生成一些精美的节日素材图片,然后再设计排版添加下文案等素材。

序号 操作 描述
1 点击“txt2img”选项卡 ①. 通过文字的描述生成图片
2 输入“Prompt” ①. 对所希望生成的图片的文本描述,一般使用英文描述可以获得更好的生成结果
3 输入“Negative prompt” ①. 描述的是用户希望生成的图片的特征
②. 而Negative prompt则是生成的图片中不希望含有的特征,如低质量图片等
4 调整“Sampling Steps” ①. 如果生成图片细节不满足要求,可适当增加采样步骤,但生成时间也会相应增加
②. 大部分采样器超过50步后意义就不大了
5 点击“Generate”生成图片

在通过PhotoShop添加相应的文案元素进行排版,得到一个氛围感满满的中秋节气的海报,为了降低设计师手动复制二唯码生成海报的痛点,如下使用Vue + Java开发了一套重绘二唯码参数的系统,用来减轻设计师的工作量,同时,也降低了出错的几率。

重绘携带二唯码海报相关java相关核心代码:

public static byte[] pressImage(ByteArrayInputStream input, FxPosterDTO poster,float alpha, Map<String, String> textMap) {ByteArrayOutputStream bos = new ByteArrayOutputStream();try {// 海报图片Image target = ImageIO.read(new URL(poster.getPosterUrl()));int wideth = target.getWidth(null);int height = target.getHeight(null);BufferedImage image = new BufferedImage(wideth, height, 1);Graphics2D g = image.createGraphics();g.drawImage(target, 0, 0, wideth, height, null);// 二维码图片Image src_other = ImageIO.read(input);int wideth_other = src_other.getWidth(null);int height_other = src_other.getHeight(null);int reX = (wideth - wideth_other) / 2;int reY = (height - height_other) / 2;g.setComposite(AlphaComposite.getInstance(10, alpha));g.drawImage(src_other, reX + poster.getQrCodeX(), reY + poster.getQrCodeY(), null);// 码LOGO替换if (HmbConstants.WECHAT_PROGRAM.equals(poster.getRemark1())) {int logoX = (wideth - 240) / 2;int logoY = (height - 240) / 2;Image logoIO = ImageIO.read(new URL(fxProject.getRemark1()));g.drawImage(logoIO, logoX + poster.getPointX() + LOGO_OFFSET,logoY + poster.getPointY() + LOGO_OFFSET, null);}// 海报文字PosterQrcodeReq obFirst = JSON.parseObject(poster.getRemark4(), PosterQrcodeReq.class);PosterQrcodeReq obSecond = JSON.parseObject(poster.getRemark5(), PosterQrcodeReq.class);String contentFirst = Tools.isBlank(obFirst.getContentFirst()) ? "" : obFirst.getContentFirst();String contentSecond = Tools.isBlank(obSecond.getContentSecond()) ? "" : obSecond.getContentSecond();Color color = Color.WHITE;if (HmbConstants.POSTER_WORD_COLOR_B.equals(obSecond.getContentColor())) {color = Color.BLACK;}if (!Tools.isBlank(textMap)) {g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);String waterMarkContent = textMap.get("userName").concat(contentFirst);g.setColor(color);g.setBackground(Color.WHITE);g.setFont(new Font("Microsoft YaHei", Font.BOLD, 24)); // 字体、字型、字号g.drawString(waterMarkContent, reX + obFirst.getXFirst(), reY + obFirst.getYFirst()); // 画文字g.drawString(contentSecond, reX + obSecond.getXSecond(), reY + obSecond.getYSecond()); // 画文字}} catch (Exception var14) {log.error(var14.getMessage(), var14);}return bos.toByteArray();
}public static byte[] pressImage(InputStream input, float f, FxPosterDTO req , boolean isFont) throws Exception {ByteArrayOutputStream bos = new ByteArrayOutputStream();Thread.currentThread().getContextClassLoader().getResource("").getPath();Image target = ImageIO.read(new URL(req.getPosterUrl()));int wideth = target.getWidth(null);int height = target.getHeight(null);BufferedImage image = new BufferedImage(wideth, height, 1);Graphics2D g = image.createGraphics();g.drawImage(target, 0, 0, wideth, height, null);Image src_other = ImageIO.read(input);int qrWidth = req.getQrCodeSize() == 0  ? 200 : 200 * req.getQrCodeSize() / 100;BufferedImage bufferedImageBef = createResizedCopy(src_other, qrWidth, qrWidth);int wideth_other = bufferedImageBef.getWidth(null);int height_other = bufferedImageBef.getHeight(null);int reX = (wideth - wideth_other) / 2;int reY = (height - height_other) / 2;BufferedImage bufferedImage = setClip(bufferedImageBef,20);g.setComposite(AlphaComposite.getInstance(10, f));g.drawImage(bufferedImage,(wideth - 280) / 2 + req.getQrCodeX(), (height - 280) / 2 + req.getQrCodeY(),null);g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);Color mycolor = POSTER_WORD_COLOR_B.equals(req.getFontColor()) ? Color.BLACK : Color.WHITE;g.setColor(mycolor);g.setBackground(Color.WHITE);if (!isFont){g.setFont(new Font("AR PL UMing CN:style=Light", Font.BOLD, 30));g.drawString(PbmCodeUtils.mask(req.getCreateName(),4,3), reX + req.getFontX(),reY + req.getFontY());}g.dispose();ImageIO.write(image, FORMAT_NAME, bos);return bos.toByteArray();
}

2.3 小结:

在导入Stable Diffusion后,再加上自己研发的系统对海报进行二次加工,可以达到海报批量快速产出的效果,加快了业务部分快速推广的作用,同时,也极大的减轻了设计师的工作量。

  • 借助Stable Diffusion图片生成能力可以快速的基本素材的生成
  • 借助PS软件专门用来进行图像处理的软件,通过它可以对图像修饰、对图形进行编辑,以及对图像的色彩处理,另外还有绘图和输出等功能,可以使图像产生特效,如果和其它工具或软件配合使用,还可以进行高质量的广告设计、美术创意和三维动画制作
  • 借助自己开发的图片二次开发功能,可以有效的将不同渠道、不同业务的分销码,重绘到海报中携带二唯码参数

希望借助AIGC领域的工具,打造一个全流程线上工具化,运营人员通过配置节日、风格、形象、动作等即可自动生成运营图。

3.1 以图生图 - 运营生成二唯码场景:

4. 总结:

“腾讯云高性能应用服务HAI”提供了Stable Diffusion快速部署及下载自定义模型功能,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解Git、Python、Docker等技术,只需要在控制台图形界面点击几下鼠标就可以快速启动Stable Diffusion服务进行绘画,非技术同学也能轻松搞定。



有些同学可能是第一次接触GPU这个概念,接下来我就来普及一下GPU是什么?有什么样的一些特点?为什么在AI、深度训练和图像处理等领域大受欢迎呢?

九、什么是GPU?GPU与CPU有什么区别吗?GPU有哪些应用场景?

1. 什么是GPU?

GPU,全称为图形处理器,是一种专门设计用于处理计算机图形和图像的处理器。它可以加速计算机图形渲染和处理操作,提高计算机图形和图像的性能和质量。GPU相对于CPU而言,具有更多的处理单元和更高的并行处理能力,因此可以更快地处理大量的图形和图像数据。

GPU的主要功能包括图形渲染、图像处理、计算加速等。

  • 在游戏、动画、视觉效果等领域中,GPU是实现高质量图形和图像的必要组件。
  • 在科学计算、深度学习等领域中,GPU也可以作为计算加速器来使用,可以大幅提高计算速度和效率。

GPU的工作原理是通过多个处理单元并行处理图形、图像和计算任务来提高处理速度和效率。这些处理单元分布在不同的计算核心和计算单元中,可以同时处理多个任务。此外,GPU还使用了高速缓存、显存等技术来优化数据存储和访问,进一步提高了性能和速度。


2. CPU与GPU的不同特点:

3. 显卡是GPU吗?

通常所说的显卡(Graphics Card)指的是安装了 GPU 的设备。

上图所示,显卡除了包含 GPU 之外,还包括显存、供电模块、总线、风扇、显卡 BIOS、外围设备等部件。显卡通过将 CPU 传输的数据转换为图像信号,控制显示器输出图像。

可以看出,在一些需要大量图像处理或计算的应用场景中,GPU 可以比 CPU 更高效地完成任务。因此,现代的显卡也广泛应用于机器学习、深度学习、AI人工智能等领域的加速计算,甚至被用于科学计算、天文学、地质学、气象学、量子学等众多领域。

4. 不同的结构组成:

5. 白话文区别:

6. Nvidia 产品矩阵:


十、公司业务其它AI场景的未来展望:

在新的AIGC技术浪潮之中,“腾讯云高性能应用服务HAI”的实践方案过程中,在公司推广技术导入方案会面临着这样的问题:

  • 在的业务上应用“腾讯云高性能应用服务HAI”能获得什么?
  • 如何快速、平滑地从传统的体系基础上完成“腾讯云高性能应用服务HAI”切换?
  • 站在机器学习算法设计的角度,又会带来什么影响和改变?
  • 在众多的AIGC生态下,众多的技术路线和架构选型中,如何确定“腾讯云高性能应用服务HAI”是一条比较适合自身场景的路径?

以下是公司经过了初创期、爬坡期,在行业内快速的吸引客户,并且占有一定的业务量,后续在原有的业务基础上,提高市场的竞争力,以及对公司一些CostDown原则的实施,希望能通过更多的AIGC的工具链路,帮助企业实施AI的战略布局。

事实上,通过以上对Stable Diffusion和Pytorch的众多案例,可以看到在原有的人工传统作业方式,通过AIGC的工具体系,来加速业务的处理效率。


十一、总结:

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

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

相关文章

开源 Linux 系统 KDE neon 20231109 中文正式版来了

前言 开源 Linux 系统Neon 的外观和感觉很像 Linux 发行版,但其开发人员在其网站上非常公开地声称 Neon 不是真正的 Linux 发行版。它只是安装和运行 – 有点像。Neon 似乎是一个 Linux 操作系统。它会启动您的计算机。它显示了一个完整的桌面环境。它运行应用程序,所以你可…

【算法套路】(数组中)等价转换

文章目录 例题——2488. 统计中位数为 K 的子数组⭐【套路】子数组统计问题常用技巧&#xff1a;等价转换 相似题目列表面试题 17.05. 字母与数字525. 连续数组1124. 表现良好的最长时间段解法1解法2——利用单调栈 例题——2488. 统计中位数为 K 的子数组⭐ https://leetcode…

Proteus仿真--基于ADC0832设计的两路电压表

本文介绍基于ADC0832实现的双路电压表采集设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 采集芯片选用ADC0832&#xff0c;电压显示在LCD1602液晶显示屏上 仿真运行视频 Proteus仿真--基于ADC0832设计的两路电压表 附完整Proteus仿真资料代码资料…

【力扣206】反转链表

【力扣206】反转链表 一.题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1 &#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2 &#xff1a; 输入&#xff1a;head [1,2] 输出&#x…

sqlserver2019基本操作

一、下载管理工具 sql server2019官方的管理工具是SQL Server Management Studio 简称SSMS。 下载连接: https://learn.microsoft.com/zh-CN/sql/ssms/download-sql-server-management-studio-ssms?viewsql-server-ver16二、登录 1.连接服务器 点击 文件 --> 连接对象资…

harmonyOS学习笔记之stateStyles

stateStyles:多态样式 stateStyles可以依据组件的内部状态的不同,设置不同的样式 stateStyles是属性方法,可以根据状态来设置样式,类似于css伪类,但是语法不一样,ArkUI提供了四种状态: focused:获焦态 normal:正常态 pressed:按压态 disable:不可用态例如: Entry Component …

Mybatis-Plus更新时间字段不生效

一、背景 Mybatis-Plus是在Mybatis的基础上只做增强不做改变&#xff0c;主要是为简化开发。项目的背景是使用的就是Mybatis-Plus&#xff0c;但是在运行项目过程中发现一个问题&#xff0c;当使用Mybatis-Plus进行数据的更新的时候&#xff0c;更新字段没有按照我们所预想的进…

Springboot依赖注入时重复初始化Bean的问题

前言 最近做项目&#xff0c;发现了springboot2.7.x在参数initiate的时候可以反复初始化&#xff0c;而且首次异常后&#xff0c;第二次成功居然也可以启动&#xff0c;通过查看源代码发现了问题根源&#xff0c;且在springboot高版本3.x&#xff0c;就出现了了Configuration的…

qnx修改tcp和udp缓冲区默认大小

拷贝/home/test/qnx/qos223/target/qnx7/aarch64le/sbin/sysctl进系统中 https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.utilities/topic/s/sysctl.html kern.sbmax 默认262144&#xff0c;这个限制住了发送、接收缓冲器大小 ./sysctl -w kern.sbmax10000…

尺寸公差软件 AI自动化建模在电控器装配测量中的应用

在公差仿真分析中&#xff0c;公差仿真模型的建立&#xff0c;是耗时、繁琐&#xff0c;但又必需的一步&#xff1a;手动建立特征、手动建立装配、手动建立公差、手动建立测量。往往需要几天时至几十天&#xff0c;才能将模型建立完成。 幸运的是&#xff0c;随着AI&#xff0…

Kafka 架构深度解析:生产者(Producer)和消费者(Consumer)

Apache Kafka 作为分布式流处理平台&#xff0c;其架构中的生产者和消费者是核心组件&#xff0c;负责实现高效的消息生产和消费。本文将深入剖析 Kafka 架构中生产者和消费者的工作原理、核心概念以及高级功能。 Kafka 生产者&#xff08;Producer&#xff09; 1 发送消息到…

【Delphi】中使用Indy进行UDP广播通信

目录 一、服务器端&#xff08;接收端&#xff09; 二、客户端&#xff08;广播端&#xff09; Delphi中进行UDP广播通信函数代码&#xff1a; 一、服务器端&#xff08;接收端&#xff09; 在主界面上返放置一个TIdUDPServer控件&#xff0c;设置好该控件的监听端口&#…

专业课:递归非递归中序遍历

非递归中序遍历二叉树通常使用栈来辅助实现。 树结构&#xff1a; struct TreeNode {int data;TreeNode* left;TreeNode* right; };递归 void inorderTraversal(TreeNode *root){if(root ! nullptr){//中序遍历 “左孩子--根节点--右孩子”inOrder(root->lchild);printf(…

设计模式-结构型模式之代理设计模式

文章目录 八、代理设计模式 八、代理设计模式 代理设计模式通过代理控制对象的访问&#xff0c;可以详细访问某个对象的方法&#xff0c;在这个方法调用处理&#xff0c;或调用后处理。既(AOP微实现) 。 代理有分静态代理和动态代理&#xff1a; 静态代理&#xff1a;在程序…

c 实现的jpeg 8×8 离散余弦DCT 正向,逆向转换

理论公式&#xff1a; 验证数据 1.正向&#xff0c;数据源为YCbCr 88 数据 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <sys/mman.h> #include <string.…

Android CardView基础使用

目录 一、CardView 1.1 导入material库 1.2 属性 二、使用(效果) 2.1 圆角卡片效果 2.2 阴影卡片效果 2.3 背景 2.3.1 设置卡片背景(app:cardBackgroundColor) 2.3.2 内嵌布局&#xff0c;给布局设置背景色 2.4 进阶版 2.4.1 带透明度 2.4.2 无透明度 一、CardView 顾名…

面试题:MySQL为什么选择B+树作为索引结构

文章目录 前言二、平衡二叉树(AVL)&#xff1a;旋转耗时三、红黑树&#xff1a;树太高四、B树&#xff1a;为磁盘而生五、B树六、感受B树的威力七、总结 前言 在MySQL中&#xff0c;无论是Innodb还是MyIsam&#xff0c;都使用了B树作索引结构(这里不考虑hash等其他索引)。本文…

GeoServer漏洞(CVE-2023-25157)

前半部分是sql注入一些语句的测试&#xff0c;后面是漏洞的复现和利用 Sql注入漏洞 1.登入mysql。 2.查看默认数据库 3.使用mysql数据库 4.查看表 1.查看user 表 2.写注入语句 创建数据库 时间注入语句 布尔注入语句 报错注入语句 Geoserver漏洞&#xff…

智能手机的分层架构

一、用户界面&#xff08;UI&#xff09; 在智能手机架构中&#xff0c;用户界面&#xff08;User Interface&#xff0c;简称 UI&#xff09;是用户与应用程序进行交互的媒介。UI可以视为应用层的一个重要部分&#xff0c;它包括所有可视化的元素和用户交互的组件。 以下是UI…

three.js--立方体

作者&#xff1a;baekpcyyy&#x1f41f; 使用three.js渲染出可以调节大小的立方体 1.搭建开发环境 1.首先新建文件夹用vsc打开项目终端 2.执行npm init -y 创建配置文件夹 3.执行npm i three0.152 安装three.js依赖 4.执行npm I vite -D 安装 Vite 作为开发依赖 5.根…