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

OpenVINO™ 2024.2 发布--推出LLM专属API !服务持续增强,提升AI生成新境界

点击蓝字

关注我们,让开发变得更有趣

作者 | 武卓 博士

排版 | 李擎

d013fddbb18874120c4c7a01ccf03d8c.png

Hello, OpenVINO™ 2024.2

对我们来说,这是非常忙碌的几周,因为我们正在努力根据您的反馈改进我们的产品特性,并扩展生态系统以涵盖其它场景和用例。

让我们看看我们所做的最重要的更改。有关更详细的列表,您可以随时参考我们的完整 [新版本说明]

https://docs.openvino.ai/2024/about-openvino/release-notes-openvino.html

OpenVINO™

隆重推出 OpenVINO.GenAI 软件包和 LLM特定 API

生成式 AI 正在被应用程序设计人员快速地使用着。这不仅体现在使用来自商业云服务模型的传统REST API形式上,而且还发生在客户端和边缘。越来越多的数据正在客户端处理,通过AIPC,我们为此开始看到更多的机会。其中一种场景是人工智能助手,它能够生成文本(邮件草稿、文档摘要、文档内容的答案等等)。这一切都由 LLM(大型语言模型)和不断增长的 SLM(小型语言模型)系列提供支持。

我们引入了新的软件包 openvino-genai,它使用OpenVINO™ 以及其中的openvino_tokenizers,因此如果您打算运行 LLM,安装此软件包就足够了。经典的 OpenVINO API 也支持其它类型的模型,因此现在流水线构建变得更加容易。我们的安装选项也进行了更新,以便反映并指导使用新软件包,因此请在那里查看您最合适的选项。经典的 OpenVINO™ 软件包仍然存在,如果您暂时不打算使用生成式 API,请继续使用 openvino 软件包。

安装选项更新:

https://docs.openvino.ai/2024/get-started/install-openvino.html

经典OpenVINO™软件包:

https://www.intel.cn/content/www/cn/zh/developer/tools/openvino-toolkit/download.html

为了通过 LLM 生成结果,应用程序需要执行整个操作流水线:执行输入文本的分词,处理输入上下文,迭代生成模型答案的后续输出分词,最后将答案从分词解码为纯文本。每个分词的生成都是推理调用,然后是后续逻辑来选择分词本身。逻辑可以是贪婪搜索的形式,也就是选择最可能的分词,也可以是波束搜索的形式,即保持很少的序列并选择其中最好的。

虽然OpenVINO™在推理方面大放异彩,但正如我们刚才所讨论的,这还不足以涵盖整个文本生成的流水线。在 2024.2 版本之前,我们提供了帮助程序(分词器和示例)来实现这一点,但应用程序必须使用这些组件实现整个生成逻辑。现在这种情况正在发生改变。

在 24.2 版本中,我们引入了特定于 LLM 的 API,这些 API 隐藏了内部生成循环的复杂性,并显著减少了需要在应用程序中编写的代码量。通过使用特定于 LLM 的 API,您可以加载模型,向其传递上下文,并通过几行代码返回响应。在内部,OpenVINO™将对输入文本进行分词化,在您选择的设备上执行生成循环,并为您提供答案。让我们一步一步地看看这是如何使用Python和C++完成的。

第一步

通过Hugging Face Optimum-Intel导出

 LLM 模型(我们使用了针对聊天微调的 Tiny Llama)

以下是将OpenVINO IR格式的LLM模型导出为FP16或INT4精度的两种方式。为了使LLM推理性能更高,我们建议对模型权重使用较低的精度,即INT4,并在模型导出过程中直接使用神经网络压缩框架(NNCF)压缩权重,如下所示。

FP16:

optimum-cli export openvino --model "TinyLlama/TinyLlama-1.1B-Chat-v1.0" --weight-format fp16 --trust-remote-code

INT4:

optimum-cli export openvino --model "TinyLlama/TinyLlama-1.1B-Chat-v1.0" --weight-format int4 --trust-remote-code

第二步

 使用C++或Python进行生成

通过新的C++ API进行LLM生成

#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>int main(int argc, char* argv[]) {std::string model_path = argv[1];ov::genai::LLMPipeline pipe(model_path, "CPU");//target device is CPUstd::cout << pipe.generate("The Sun is yellow bacause"); //input context
}

通过新的 Python API 进行生成

import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(model_path, "CPU")
print(pipe.generate("The Sun is yellow bacause"))

如您所见,只需要几行代码就能建立一个LLM生成的流水线。这是因为,从 Hugging Face Optimum-Intel 导出模型后,它已经存储了执行所需的所有信息,包括分词器/反分词器和生成配置,从而能够获得与 Hugging Face 生成匹配的结果。我们提供 C++ 和 Python API 来运行 LLM、最少的依赖项列表和对应用程序的添加。

为了实现生成式模型更具交互性的UI界面,我们添加了对模型输出分词流式处理的支持。在下面的示例中,我们使用简单的 lambda 函数在模型生成单词后立即将单词输出到控制台:

#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>int main(int argc, char* argv[]) {std::string model_path = argv[1];ov::genai::LLMPipeline pipe(model_path, "CPU");auto streamer = [](std::string word) { std::cout << word << std::flush; };std::cout << pipe.generate("The Sun is yellow bacause", streamer);
}

您也可以创建自定义流处理器进行更复杂的处理,这在我们的 [文档] 中进行了描述。

文档:

https://docs.openvino.ai/2024/learn-openvino/llm_inference_guide/genai-guide.html

最后,我们还研究了聊天场景,其中输入和输出代表对话,并且有机会以在输入之间保留 KV缓存 的形式进行优化。为此,我们引入了聊天特定方法 start_chat 和 finish_chat,它们用于标记会话的开始和结束。下面是一个非常简单的 C++ 示例:

int main(int argc, char* argv[]) {std::string prompt;std::string model_path = argv[1];ov::genai::LLMPipeline pipe(model_path, "CPU");pipe.start_chat();for (;;) {std::cout << "question:\n";std::getline(std::cin, prompt);if (prompt == "Stop!")break;std::cout << "answer:\n";auto answer = pipe(prompt);std::cout << answer << std::endl;}pipe.finish_chat();
}

在上面的所有示例中,我们都使用 CPU 作为目标设备,但 GPU 也同样是支持的。请记住,GPU 将为 LLM 本身运行推理,分词选择逻辑和分词化/去分词化将保留在 CPU 上,因为这更有效率。内置的分词器以单独的模型形式表示,并通过我们的推理功能在 CPU 上运行。

这个 API 使我们能够更灵活、更优化地实现生成逻辑,并不断扩展。请继续关注后续发布版本中的更多功能!

同时,请务必查看我们的 [文档] [示例] 以获取新的 API,尝试后告诉我们你的想法。

文档:

https://docs.openvino.ai/2024/learn-openvino/llm_inference_guide/genai-guide.html

示例:

https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/llm-question-answering

OpenVINO™

通过OpenVINO扩展模型服务 

通过服务化部署模型是一个非常成熟的方法论,并且随着基于微服务的部署不仅在传统的云环境中扩展,同时也在向边缘计算领域扩展,这一需求日益增长。更多的应用被开发为微服务,并部署在智能边缘和云中。在2024.2 版本中,我们引入了对服务场景的额外支持。让我们来看看最重要的变化。

OpenVINO模型服务器是我们长期开发的模型服务解决方案,它被应用程序广泛采用,以最有效的方式为模型提供服务。在此版本中,我们引入了通过称为连续批处理的机制为LLM提供高效服务的能力。

连续批处理:

https://www.anyscale.com/blog/continuous-batching-llm-inference

从本质上讲,连续批处理允许我们通过将多个请求合并到批处理中来以最有效的方式实现推理服务。由于生成过程中上下文大小的差异,传统批处理文本生成方案的方式非常有限。实际上,不可能找到两个相同长度的不同请求并生成相同长度的输出来执行传统的请求批处理。为了解决这个问题,我们采用了分页注意力方法,就像在 vLLM 实现中的那样。这使我们能够将多个请求合并到同一模型中,并提高硬件利用率。不过,调度请求的内部逻辑是不同的,我们考虑了 CPU 在设计时使其更高效的细节,结合了高吞吐量和低延迟,使其更高效。

为了以最适应应用程序的方式部署 LLM,我们在文本生成的使用场景实现了 OpenAI 兼容的API。我们的实现包括 连续批处理和分页注意力算法,因此文本生成可以在高并发负载下快速高效。这使得您可以允许在云中或本地(如果需要的话)创建自己的类似 OpenAI 的 LLM 服务端点。

尽管 LLM 备受瞩目,但传统的深度学习模型作为独立解决方案或大型流程的一部分仍有着高度需求。OVMS 可以长时间高效地部署这些模型,但对其它部署解决方案的需求非常高,因此我们为服务场景引入了一些额外的 OpenVINO™ 集成:通过 TorchServe 和 Nvidia Triton 提供服务

OpenVINO™ 长期以来一直为 Triton Serving 提供后端,我们最近与 Nvidia 工程师合作,重新设计了它的附加功能,例如支持动态输入。您可以在我们的博客文章中查看有关如何在 Triton 中使用 OpenVINO™ 的更多详细信息。

博客文章:

https://medium.com/openvino-toolkit/how-to-serve-models-on-nvidia-triton-inference-server-with-openvino-backend-a4c36300ee21

服务功能的另一个重要补充是通过使用 torch.compile 的 OpenVINO™ 后端,使用 TorchServe 为模型提供服务。在引入 torch.compile 之后,TorchServe 引入了通过不同后端加速服务的功能。这正是OpenVINO™现在发生的事情,我们提供了在TorchServe中指定OpenVINO™作为后端的功能。有关更多详细信息,您可以查看示例,这些示例非常简单且不言自明。

torch.compile 的 OpenVINO™ 后端:

https://docs.openvino.ai/2024/openvino-workflow/torch-compile.html

示例:

https://github.com/pytorch/serve/tree/master/examples/pt2/torch_compile_openvino

OpenVINO™

性能提升

我们仍然专注于 AI 模型的性能表现。尽管 AIPC 的出现,LLM 在客户端的采用仍然对底层硬件产生压力。我们的优化工作覆盖了不同的支持目标,包括 CPU、GPU 和 NPU。

AIPC与传统PC的不同在于它集成了专门的硬件加速器,随着AI应用场景从云端转向个人计算领域,其重要性日益增加。英特尔®酷睿™Ultra处理器提供了更强大的GPU以及NPU。从性能和效率的角度来看,这些都让加速解决方案更具吸引力。

如果平台性能不足,我们始终能够通过添加我们的ARC系列独立显卡进行加速,来实现进一步的性能提升。为了帮助实现LLM部署特性,我们一直专注于加速GPU的LLM的推理性能,覆盖了集成显卡和独立显卡。将负载卸载到 GPU 不仅是因为它的特性适宜处理这类工作负载,还因为需要保持 CPU 可用。因此,推理期间的 CPU 负载对于此类情况至关重要。我们一直在努力优化 CPU 端负载并减少主机代码延迟至少一半。这也使我们能够实现更好的 GPU 特性,因为内核调度现在更加高效。

此外,我们还致力于少数GPU基本操作的更高效实现,包括 Scaled Dot Product Attention 和 Positional Embeddings 的融合版本。这不仅改善了延迟,还减少了推理期间的主机开销和整体内存消耗,这对于在笔记本电脑上运行 LLM 等场景至关重要。

独立显卡上一些LLM的延迟已经降低,我们正与oneDNN团队的合作伙伴一起,继续我们的优化之旅。

虽然我们经常谈论 GPU,但 CPU 等其他目标设备的性能也有所改进。在CPU上,第二个分词延迟的性能得到了明显改善,以及在基于AVX2(13代英特尔酷睿处理器)和AVX512(第三代至强可扩展处理器)的CPU平台上,FP16权重的LLM的内存占用情况也得到了明显改善,尤其是在小批量的情况下。更不用说,我们还在 Optimum-Intel 集成中持续增加了对新模型的覆盖。

OpenVINO™

新模型和notebooks示例

在每次发布的新版本中,我们都会继续扩大对新模型的支持,以及增加新的Notebook代码示例,展示如何在这些使用用例中利用OpenVINO™。对于新模型,我们增加了对TensorFlow*Hub的mil-nce和openimages-v4-sd-mobilent-v2的支持,以及Phi-3-mini:这是一个AI模型家族,利用小语言模型的力量实现更快、更准确和更具成本效益的文本处理。

Notebooks代码示例可以成为用户学习和体验的宝贵内容。在这个版本中,我们添加了几个新的Notebooks。最值得注意的是用于动画图像的DynamiCrafter notebook,用于转换和优化YOLOv10为OpenVINO™的notebook,以及在现有LLMChatbot notebook中添加Phi-3-mini模型,以便用户可以尝试更多的LLM模型。

  • 可以在以下地址找到最新的带有GitHub验证状态的notebooks

    https://openvinotoolkit.github.io/openvino_notebooks/

  • 以下是已更新或新添加的notebooks:

  • Image to Video Generation with Stable Video Diffusion

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/stable-video-diffusion/stable-video-diffusion.ipynb

  • Image generation with Stable Cascade

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/stable-cascade-image-generation/stable-cascade-image-generation.ipynb

  • One Step Sketch to Image translation with pix2pix-turbo and OpenVINO

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/sketch-to-image-pix2pix-turbo/sketch-to-image-pix2pix-turbo.ipynb

  • Animating Open-domain Images with DynamiCrafter and OpenVINO

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/dynamicrafter-animating-images/dynamicrafter-animating-images.ipynb

  • Text-to-Video retrieval with S3D MIL-NCE and  OpenVINO

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/s3d-mil-nce-text-to-video-retrieval/s3d-mil-nce-text-to-video-retrieval.ipynb

  • Convert and Optimize YOLOv10 with OpenVINO

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/yolov10-optimization/yolov10-optimization.ipynb

  • Visual-language assistant with nanoLLaVA and OpenVINO

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/nano-llava-multimodal-chatbot/nano-llava-multimodal-chatbot.ipynb

  • Person Counting System using YOLOV8 and OpenVINO™

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/person-counting-webcam/person-counting.ipynb

  • Quantization-Sparsity Aware Training with NNCF, using PyTorch framework

    https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/pytorch-quantization-sparsity-aware-training/pytorch-quantization-sparsity-aware-training.ipynb

OpenVINO™

总结

在此,我们兴奋地宣布OpenVINO™ 2024.2最新版本现已开放下载!

我们的团队一直致力于各项新特性和性能提升的研发。一如既往,我们努力不断优化用户体验,拓宽OpenVINO™的功能边界。我们的开发路线图上已经规划了下一版本的诸多特性,迫不及待在未来与您分享。感谢大家的支持与厚爱!

OpenVINO™

--END--

点击下方图片,让我们一起成为“Issues 猎手”,共创百万用户开源生态!
你也许想了解(点击蓝字查看)⬇️➡️ OpenVINO™ 助力 Qwen 2 —— 开启大语言模型新时代➡️ 揭秘XPU架构下AIGC的推理加速艺术--AI PC 新纪元:将 AI 引入 NPU,实现快速低功耗推理➡️ 隆重介绍 OpenVINO™ 2024.0: 为开发者提供更强性能和扩展支持➡️ 隆重推出 OpenVINO 2023.3 ™ 最新长期支持版本➡️ OpenVINO™ 2023.2 发布:让生成式 AI 在实际场景中更易用➡️ 开发者实战 | 介绍OpenVINO™ 2023.1:在边缘端赋能生成式AI➡️ 5周年更新 | OpenVINO™  2023.0,让AI部署和加速更容易➡️ OpenVINO™5周年重头戏!2023.0版本持续升级AI部署和加速性能➡️ 开发者实战系列资源包来啦!
扫描下方二维码立即体验 
OpenVINO™ 工具套件 2024.1

点击 阅读原文 获取最新版OpenVINO™2024.2

评论区已开放,欢迎大家留言评论!

文章这么精彩,你有没有“在看”?

相关文章:

OpenVINO™ 2024.2 发布--推出LLM专属API !服务持续增强,提升AI生成新境界

点击蓝字 关注我们,让开发变得更有趣 作者 | 武卓 博士 排版 | 李擎 Hello&#xff0c; OpenVINO™ 2024.2 对我们来说&#xff0c;这是非常忙碌的几周&#xff0c;因为我们正在努力根据您的反馈改进我们的产品特性&#xff0c;并扩展生态系统以涵盖其它场景和用例。 让我们看看…...

【Mybatis-Plus】根据自定义注解实现自动加解密

背景 我们把数据存到数据库的时候&#xff0c;有些敏感字段是需要加密的&#xff0c;从数据库查出来再进行解密。如果存在多张表或者多个地方需要对部分字段进行加解密操作&#xff0c;每个地方都手写一次加解密的动作&#xff0c;显然不是最好的选择。如果我们使用的是Mybati…...

Window上ubuntu子系统编译Android

Window上ubuntu子系统编译Android 1、编译环境2、WSL2编译报错2.1 You are building on a machine with 11.6GB of RAM2.2 Case-insensitive filesystems not supported3. android模拟器调试 1、编译环境 AOSP : Android源码下载安装java&#xff1a;sudo apt-get install ope…...

【Java学习笔记】异常处理

生活中我们在使用一些产品的时候&#xff0c;经常会碰到一些异常情况。例如&#xff0c;使用ATM机取钱的时&#xff0c;机器会突然出现故障导致无法完成正常的取钱业务&#xff0c;甚至吞卡&#xff1b;在乘坐地铁时&#xff0c;地铁出现异常无法按时启动和运行&#xff1b;使用…...

Ubuntu20.04环境下Baxter机器人开发环境搭建

Ubuntu20.04环境下Baxter机器人开发环境搭建 ubuntu20.04安装 略 安装ROS 略 Baxter机器人依赖安装 主目录创建工作空间&#xff0c;按以下步骤执行 mkdir -p ~/baxter_ws/src source /opt/ros/noetic/setup.bash cd ~/baxter_ws catkin_make catkin_make install s…...

nccl 03 记 回顾:从下载,编译到调试 nccl-test

1&#xff0c; 下载与编译 1.1 源码下载 $ git clone https://github.com/NVIDIA/nccl.git 1.2 编译 1.2.1 一般编译&#xff1a; $ make -j src.build 1.2.2 特定架构gpu 编译 $ make -j src.build NVCC_GENCODE"-gencodearchcompute_80,codesm_80" A10…...

关于车规级功率器件热可靠性测试的分享

随着中国电动汽车市场的稳步快速发展和各大车企布局新能源的扩散&#xff0c;推动了车规级功率器件的快速增长。新能源汽车行业和消费电子都会用到半导体芯片&#xff0c;但车规级芯片对外部环境要求很高&#xff0c;涉及到的一致性和可靠性均要大于工业级产品要求&#xff0c;…...

内核学习——1、list_head

双向循环链表&#xff1a;list_head 头节点head是不使用的&#xff1a; struct list_head { struct list_head *next, *prev; }; 结构体中没有数据域&#xff0c;所以一般把list_head嵌入到其他结构中使用 struct file_node { char c; struct list_head node; }; 此时&#xff…...

JavaEE初阶--网络基本概念

目录 一、引言 二、网络基本概念 2.1 局域网LAN 2.2 广域网WAN 三、网络通信的基础 3.1 IP地址 3.2 端口号 3.3 协议 3.4 五元组 3.5 协议分层 3.6 OSI七层模型 3.7 TCP/IP五层模型 四、总结 一、引言 本篇博客将进入网络编程以及网络原理的学习&#xff0c;但网…...

gitlab-cicd-k8s

k8s已经准备好 kubectl get node 创建cicdYaml文件 kubectl create namespace gitlab-cicd --dry-runclient --outputyaml >> gitlab-cicd.yaml kubectl apply -f gitlab-cicd.yaml 服务器和仓库在一起可用专有地址 使用 GitLab Runner 可以自动执行 GitLab CI/CD 管道…...

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法 最近在多个客户现场以及公司内部环境&#xff0c;都遇到了因为 JournalNode 异常导致 HDFS 服务不可用的问题&#xff0c;在此总结下相关知识。 1 HDFS HA 高可用和 JournalNode 概述 HDFS namenode 有 SPOF 单点故障…...

深入了解python生成器(generator)

生成器 生成器是 Python 中一种特殊类型的迭代器。生成器允许你定义一个函数来动态产生值&#xff0c;而不是一次性生成所有值并将它们存储在内存中。生成器使用 yield 关键字来逐个返回值。每次调用生成器函数时&#xff0c;函数会在 yield 语句暂停&#xff0c;并记住当前的…...

【Linux】Xshell和Xftp简介_安装_VMware虚拟机使用

1、简介 Xshell简介 Xshell是一款强大的安全终端模拟软件支持SSH1、SSH2以及Microsoft Windows平台的TELNET协议。该软件通过互联网实现到远程主机的安全连接&#xff0c;并通过其创新性的设计和特色帮助用户在复杂的网络环境中高效工作。Xshell可以在Windows界面下访问远端不…...

【轮询负载均衡规则算法设计题】

一、题目描述 给定n台主机&#xff08;编号1~n&#xff09;和某批数据包&#xff0c;数据包格式为&#xff08;抵达主机时刻&#xff0c;负载量&#xff09;。这里数据每个时刻最多只有1条数据到达。负载量表示该主机处理此数据包总耗时。请计算轮询负载均衡规则下&#xff0c…...

张一鸣的产品哲学:与巨头共舞,低调中寻求突破

一、引言 在当今互联网竞争激烈的格局下&#xff0c;与巨头企业打交道是每个新兴科技企业都需面对的挑战。字节跳动创始人张一鸣在多次访谈中分享了他与巨头企业打交道的经验&#xff1a;保持低调、补齐技术、产品和市场各方面的能力。本文将探讨这一策略背后的产品哲学&#…...

【面试干货】throw 和 throws 的区别

【面试干货】throw 和 throws 的区别 1、throw1.1 示例 2、throws2.1 示例 3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;throw和throws都与异常处理紧密相关&#xff0c;但它们在使用和含义上有明显的区别。…...

安卓手机删除的照片怎么恢复?3个方法,小技巧大作用

你是否曾经不小心删除了手机里的珍贵照片&#xff0c;却不知道怎么恢复&#xff1f;别担心&#xff0c;今天我们就来分享几个简单的小技巧&#xff0c;帮助你轻松找回那些丢失的照片。这些技巧虽然简单&#xff0c;但却能发挥大作用&#xff0c;让你不再为丢失照片而烦恼。手机…...

Unity制作背包的格子

1.新建一个面板 2.点击面板并添加这个组件 3.点击UI创建一个原始图像&#xff0c;这样我们就会发现图像出现在了面板的左上角。 4.多复制几个并改变 Grid Layout Group的参数就可以实现下面的效果了...

道可云元宇宙每日资讯|厦门:运用元宇宙技术助力直播电商发展

道可云元宇宙每日简报&#xff08;2024年6月20日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 厦门&#xff1a;运用元宇宙技术助力直播电商发展 近日&#xff0c;厦门市商务局印发《厦门市促进直播电商高质量发展若干措施&#xff08;2024年-2026年&#xff0…...

电脑怎么卸载软件?多个方法合集(2024年新版)

在电脑的日常使用中&#xff0c;我们经常需要安装各种软件来满足不同的需求&#xff0c;但随着时间的推移&#xff0c;可能会出现一些软件不再需要或需要更换的情况。此时&#xff0c;及时从电脑上卸载这些不必要的软件是非常重要的。它不仅可以释放硬盘空间&#xff0c;还可以…...

【深度学习基础】详解Pytorch搭建CNN卷积神经网络LeNet-5实现手写数字识别

目录 写在开头 一、CNN的原理 1. 概述 2. 卷积层 内参数&#xff08;卷积核本身&#xff09; 外参数&#xff08;填充和步幅&#xff09; 输入与输出的尺寸关系 3. 多通道问题 多通道输入 多通道输出 4. 池化层 平均汇聚 最大值汇聚 二、手写数字识别 1. 任务…...

面试技巧:正确回答JavaScript中Map和Object的选择问题

在JavaScript的面试中&#xff0c;对于何时使用Map和Object的选择问题&#xff0c;是一个常见的考察点。这两个数据结构都能存储键值对&#xff0c;但它们各有优势和适用场景。本文将深入探讨两者的区别&#xff0c;并通过实际代码示例来指导您如何选择。 基本概念 Map&#…...

sd StableDiffusion库学习笔记

目录 DeepSpeed realesrgan BasicSR超分辨率&#xff0c;去噪&#xff0c;去模糊&#xff0c;去 JPEG 压缩噪声 segment_anything mmengine controlnet_aux accelerate transfersformer pytorch_fid einops compel transfersformer 文本嵌入调整库 报错&#xff1a…...

【单片机毕业设计选题24017】-基于STM32的禽舍环境监测控制系统(蓝牙版)

系统功能: 系统分为主机端和从机端&#xff0c;主机端主动向从机端发送信息和命令&#xff0c;从机端 收到主机端的信息后回复温湿度氨气浓度和光照强度等信息。 主要功能模块原理图: 电源时钟烧录接口: 单片机和按键输入电路: 主机部分电路: 从机部分电路: 资料获取地址 主…...

每天一个数据分析题(三百七十八)- 系统聚类

在系统聚类方法中&#xff0c;哪种系统聚类是直接利用了组内的离差平方和&#xff1f; A. 最长距离法 B. 重心法 C. Ward法 D. 类平均法 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python&#…...

守护系统稳定性的关键技术之看门狗

目录 一、独立看门狗 二、窗口看门狗 三、总结 看门狗定时器&#xff08;Watchdog Timer&#xff0c;WDT&#xff09;是嵌入式系统中至关重要的组件&#xff0c;用于监控和维护系统的稳定性。主要是用来监测单片机运行状态和解决程序引起的故障的模块。在由单片机构成的微型…...

【Linux】进程间通信上 (1.5万字详解)

目录 一.进程间通信介绍 1.1进程间通信的目的 1.2初步认识进程间通信 1.3进程间通信的种类 二.匿名管道 2.1何为管道 2.1实现原理 2.3进一步探寻匿名管道 2.4编码实现匿名管道通信 2.5管道读写特点 2.6基于管道的进程池设计 三.命名管道 3.1实现原理 3.2代码实现 四.…...

测试用例设计:提升测试覆盖率的策略与方法

测试用例设计&#xff1a;提升测试覆盖率的策略与方法 前言测试用例设计的原则提高测试覆盖率的方法测试类型的分析 测试用例设计的基本方法等价类划分边界值分析正交法判定表法因果图法 方法与策略方法策略 如何评价测试用例结论 前言 在软件开发过程中&#xff0c;测试用例设…...

【微服务】什么是Hystrix?一文带你入门Hystrix

文章目录 强烈推荐引言主要功能实现容错应用场景1. 远程服务调用2. 防止级联故障3. 网络延迟和超时管理4. 资源隔离5. 高并发场景6. 熔断与自动恢复7. 故障检测与监控 示例应用场景使用实例1. 引入依赖2. 创建 Hystrix 命令类3. 使用 Hystrix 命令4. 配置 Hystrix5. 实时监控集…...

AI学习指南机器学习篇-支持向量机超参数调优

AI学习指南机器学习篇-支持向量机超参数调优 在机器学习领域中&#xff0c;支持向量机&#xff08;Support Vector Machines&#xff0c;SVM&#xff09;是一种非常常用的监督学习模型。它通过寻找一个最优的超平面来进行分类和回归任务。然而&#xff0c;在实际应用中&#x…...

织梦手机网站怎么仿制/代运营套餐价格表

如果要评选当下IT圈最火爆的话题&#xff0c;相信就算生成式AI&#xff08;Artificial Intelligence Generated Content&#xff0c;简称AIGC&#xff09;甘认第二&#xff0c;也没有人敢认第一。于是我们看到&#xff0c;在ChatGPT快速升级迭代的同时&#xff0c;百度、360、商…...

根据网站软件做报告/搜索引擎优化的内容包括

五一三天假&#xff0c;只是一个大周末&#xff0c;一冬天没有户外了&#xff0c;想出来活动活动了&#xff0c;约上三五好友&#xff0c;开始经典的香八拉折腾之旅。7点整&#xff0c;从回龙观出发&#xff0c;坐307去五道口&#xff0c;这个时间路上不会堵。7.50&#xff0c;…...

智能网站建设步骤/整合营销传播案例

目前为止&#xff0c;我们已经考察了如何编写客户端JavaScript代码&#xff0c;以发送并接受服务器的数据。然而&#xff0c;在使用ASP.NET MVC时&#xff0c;还有另一种方法可用来执行Ajax调用&#xff0c;这就是Ajax辅助方法。 Ajax是Asynchronous JavaScript and XML的缩写&…...

人大网站建设报价单/网络营销推广有哪些方法

以下内容假定已安装好Python 2.4/2.5一、下载并编译pyinstaller(只需做一次&#xff0c;以后可直接做第二步)1.下载pyinstaller,现在的版本是1.3(1)wget http://pyinstaller.hpcf.upr.edu/source/1.3/pyinstaller_1.3.tar.gz2.解包进入源码目录(1)tar zxv pyinstaller_1.3.tar.…...

上海公安门户网站警民互动/网站推广软件下载

1.安装 a.安装依赖 1 yum install -y ncurses-devel libaio-devel b.安装cmake 1 yum install -y cmake c.创建用户 1 useradd -s /sbin/nologin -M mysql d.经典三步曲 mysql-5.6.36.tar.gz下载源码包 1 #编译安装2 cmake . -DCMAKE_INSTALL_PREFIX/application/mysql-5.6.36…...

衡水做外贸网站建设/杭州seo排名费用

多态&#xff0c;面向接口编程等设计方法并没有绑定到任何特定的语言上&#xff0c;使用纯C也可以实现简单的多态概念。下面给出一个非常简单粗糙的例子&#xff0c;只为说明概念。父类Animal定义 文件&#xff1a;animal.h #ifndef ANIMAL_H #define ANIMAL_H/* 方法表, 类似…...