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

深度学习与图像处理(国产深度学习框架——飞桨官方指定教材)

计算机视觉从小白到大师之路

《深度学习与图像处理(PaddlePaddle版)》这一本就够了

1.引言

随着人工智能技术的飞速发展,各行各业对深度学习、图像处理相关领域的人才需求日益迫切。本书旨在通过系统的理论讲解与丰富的实战案例,使读者不仅掌握深度学习与图像处理的基本概念和理论,还能将这些知识应用于解决实际问题,如自动驾驶、工业质检和医疗识别等领域。书中特别强调了理论与实践的结合,通过多个真实项目案例,帮助读者提升解决实际问题的能力。

AI Studio平台作为飞桨PaddlePaddle的在线实训平台,为该书的学习提供了强有力的支持。该平台包含真实场景的大规模开放数据集,可以为学习者提供丰富的数据资源。同时,AI Studio支持云端GPU训练,新注册用户无需安装环境即可获得免费的GPU资源进行模型训练,极大的降低了学习门槛,使得人人学习AI成为可能。此外,AI Studio还提供了丰富的深度学习算法套件和工具,如PaddleDetection、PaddleSe、FastDeploy等,可快速实现模型切换和产品研发部署,进一步降低了研发成本。

在人工智能教学政策方面,随着技术的不断进步和创新,各国纷纷出台相关政策,推动人工智能教育的发展。我国也不例外,近年来在高等教育和职业教育中,深度学习技术得到了广泛应用,以提高教学质量和效率。然而,当前教育仍存在一些问题,如理论与实践脱节、教学资源不足等。针对这些问题,《深度学习与图像处理(PaddlePaddle版)》的编写动机显得尤为迫切。该书旨在填补这一空白,通过提供系统的理论知识和丰富的实战案例,帮助读者更好地理解和掌握深度学习与图像处理技术。在教材的编写目标上,该书力求做到理论与实践并重,既涵盖基础知识,又注重实战应用。书中通过多个真实项目案例,如智能垃圾分拣器、二维码扫码枪、医学影像分析仪等,详细讲解了图像分类、目标检测、语义分割等热门算法的原理与应用。同时,该书还提供了详细的算法解读和丰富的资源下载,包括数据集和源代码,极大地方便了读者的复现工作。通过这样系统化的学习,读者可以深入掌握深度学习与图像处理的核心技术,为未来的职业发展打下坚实的基础。

综上所述,《深度学习与图像处理(PaddlePaddle版)》的出版,不仅是对当前人工智能教育领域的一次有力补充,更是对未来人才培养的一次重要推动。

2.人工智能与计算机视觉教育

‌人工智能(Artificial Intelligence,简称AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,近期诺贝尔物理学奖和化学奖依次颁发给人工智能领域的专家更显示出全球技术领域对人工智能技术的认可。

计算机视觉作为人工智能领域火热的分支之一,深度学习与图像处理技术落地开花、熠熠生辉。图像处理研究工作在学术界和工业界取得的巨大成功,每年吸引着数以万计的研究人员蜂拥而至,甚至生物医学、机械制造、自动化、土木建筑等诸多跨专业的从业人员也开始涉猎研究。

然而要学会、掌握并用好深度学习与图像处理并非易事,在实际项目的开发中主要存在以下几个问题:

  1. 研究方向多

传统的图像处理算法中有读取、可视化、格式转换、缩放、剪裁、色调变化、滤波等很多算子,计算机视觉主要有目标分类、目标检测、语义分割、关键点检测、图像生成等方向,而每个研究方向又有很多种算法,在实际项目中需要对许多种算法进行对比选择最优算法,改进算法数据增强、网络骨干、损失函数等模块,学习内容太多、学习成本很高。

  1. 全流程指导缺

开发一个深度学习项目,需要数据标注、数据集制作、网络训练、网络评估、可视化调优、动态网络转静态图、模型推理、前端界面开发等阶段,现有的教材或者技术指导书籍鲜有覆盖全过程的,需要搭配多个教材使用,且不同的开源库使用方法不同,使用起来很不方便。

  1. 部署差异很大

部署端包括云、边、端三个层级,云计算一般为算力较大的服务器端,边计算一般为用户主机,可以理解为工控机,端计算一般为嵌入式开发板等小型便携设备,由于计算资源不同,部署方式差异很大,部署需要掌握Windows、Linux等多个操作系统,需要使用C++、C#、Python、Java、Html等语言,一般需要使用VSCode、Pycharm、QT、Visual Studio等IDE,部署工作量大、难度高。

  1. 算法调试困难

算法调试需要安装好合适的环境、全部可复现的代码和数据集、详细的训练超参数说明,现有教材往往对环境部署所需的驱动、开源数据集和部署界面代码以及超参数的详细解释不够重视,导致初学者快手上手道阻且长。

  1. 计算资源昂贵

动辄上万甚至数十万的深度工作站对于初学者或者经费不足的项目开发者来说是一个拦路虎,每次训练所需的开源库不同,都需要花费大量的时间进行配置,带来昂贵的学习和开发成本。

2.百度飞桨星河社区平台助力全场景、全流程、全覆盖的著作配套课程

为解决深度学习与图像处理在教育教学中的实际问题,结合团队的项目开发经验,《深度学习与图像处理(PaddlePaddle版)》重点关注技术应用和产品落地,从内容上实现计算机视觉领域的热门方向全覆盖,从案例设计上关注从原理到实践的全流程,包含了云边端部署教程,并计划在百度飞桨星河社区AI Studio平台开设配套课程,借由平台配齐教学资源和计算资源。

本书特色如下。

(1)内容丰富全面

包含了传统的图像数据技术基础以及计算机视觉热门的目标分类、目标检测、语义分割、关键点检测、图像生成等研究内容,满足工业、教育、医疗、游戏等大部分场景需求。每个研究方向提供多种算法,只需要简单设置就能随意切换算法,更改网络结构,内容丰富多样。

(2)全流程覆盖

每个案例都覆盖原理讲解、数据标注、数据集制作、网络配置与训练、网络评估与可视化、静态网络导出、前端界面开发、推理库开发等内容,注重理论学习与上机实操相结合,循序渐进掌握深度学习开发,实现从小白到大师的晋级之路,无论是理论学习还是工程开发,都能从中收获颇多。

(3)云边端部署全覆盖

部署案例包括了云边端三种类型教程,云侧通过网页端访问服务器端部署,边侧计算通过工控机的方式分别提供了C#和QT部署案例,端侧提供了树莓派、Jetson系列和安卓的部署案例,部署场景代表性强、环境丰富。不需要从零开始学习C++、C#、HTML等语言,只需了解部署相关内容即可上手,大幅降低工程开发的难度和成本。

(4)超全配套资源

全书每个章节都分别提供了微课视频、源代码、公开课资源、教学课件、教学大纲、教学进度表、教案、期末考试试卷及答案等配套资源,多维度满足学习、教学以及工程开发需求。

(5)免费计算资源

本课程在飞桨星河社区开设有公开课,提供免费GPU资源进行学习和开发,只需要简单的网页端操作即可完成,每个章节还提供了已经配置好的开发环境,大幅降低了学习成本。

3.理论与实践相结合的人工智能教学

《深度学习与图像处理(PaddlePaddle版)》重点关注技术实践,面向自动驾驶、图像分类、目标检测、语义分割、示例分割、关键点检测、风格迁移等热门研究方向,与医学、工业等学科交叉融合,设计实践学习任务,真正实现理论与实践相结合AI人才培育目标,有益于人工智能学科及计算机视觉领域的发展。

3.1 基于OpenCV的自动驾驶

主要讲解图像处理基础知识,并且运用传统图像处理方法以及OpenCV库,在模拟器中完成小车自动驾驶。

3.2 基于深度学习的自动驾驶

采用深度学习回归模型,实现端到端的小车自动驾驶控制,提升小车自动驾驶平滑性。

3.3 图像分类(智能垃圾分拣器)

以垃圾分类任务为主线,使用图像分类套件PaddleClas实现高精度垃圾分类,并最终脱离训练环境,通过FastDeploy部署工具,在Jetson Nano智能边缘设备上实现算法集成。

3.4 目标检测(二维码扫码枪)

从深度学习方法切入,使用目标检测方法实现非规范场景下的二维码高精度识别,具体的,将使用飞桨PaddleDetection套件中的PicoDet单阶段检测算法来完成研发任务,最终部署到树莓派上。

3.5 语义分割(证件照制作工具)

基于语义分割技术开发一款用于PC桌面应用的证件照制作工具,可以让用户方便的制作出不同颜色背景的标准证件照片。最终使用QT完成集成部署。

3.6 实例分割(肾小球影像分析仪)

病理切片中肾小球的精确识别是诊断肾脏病变程度的关键。这里的精确识别不止是要定位出每个肾小球的位置,还需要对肾小球区域进行精细化分割,从而可以最大程度的为病理科医师提供病变类型依据。使用PaddleDetection套件中的实例分割算法Mask RCNN来完成肾小球影像分析任务。最终使用C#程序完成部署。

3.7 关键点检测(身份证识读APP)

以手机端身份证识读项目为主线,从图像矫正角度切入,利用深度学习关键点检测算法,在安卓手机上实现身份证图像的姿态矫正。最终研发一款安卓APP,实现任意角度的身份证信息识读,提升移动端场景下的识读性能。

3.8 风格迁移(照片动漫化在线转换网站)

使用飞桨的PaddleGAN套件,学习一种图像风格化的AnimeGAN算法,最终研发一款能够将风景照片实现动漫化的在线转换网站,并且通过微服务架构设计,支持多GPU高并发访问。

4.行业专家推荐

本书内容全面、编写精良、理论与实践相融合、教辅资源丰富、可读性强,受到了学术界和工业界大佬的强力推荐:

(1)杨明(上海交通大学智能网联电动汽车创新中心主任、国家级科技创新领军人才):本书精心布局,囊括了图像处理、深度学习及其在众多前沿AI技术中的应用。全书分为两大核心部分:基础理论与实战案例。在基础知识篇,作者为读者构建了扎实的理论框架,为后续的实践奠定了坚实的基础。而在案例实战篇,书中通过一系列精心挑选的实例,将理论知识与实际应用紧密结合,使读者能够迅速将所学应用于实际。每个案例均从任务背景、算法原理、研发过程到实际部署进行了详尽的阐述,为读者提供了一条从理论到实践的清晰路径。

本书对于全国高校本科生、研究生乃至科研工作者来说,都是一本极具价值的参考书籍。它不仅能帮助读者快速上手实践,还能引导读者开展深入的科学研究,对于推动深度学习领域的发展具有重要意义。

(2)胡小波(镭神智能创始人、CEO):本书深度结合了国产开源深度学习框架PaddlePaddle的实战案例,旨在帮助读者在巩固理论知识的同时,显著提升实战能力,以更好地满足现代产业界对AI技术的需求。书中案例丰富多样且极具实用性,涵盖了从智能垃圾分拣器到照片动漫化在线转换网站等前沿应用场景,为广大工程开发人员提供了极具价值的实践指南和宝贵经验。无论是深度学习的新手还是资深开发者,都能从本书中汲取到丰富的营养,为自身的技术成长和职业发展添砖加瓦。

5.本书的心路历程

在某个缺陷项目开发时,可以使用多种机器视觉框架完成,比如目标检测、语义分割和实例分割都可以实现缺陷的检测,但到底哪种方案检测准确、计算效率高呢?一般为了加快进程,首先会从github等网站搜索开源框架算法进行测试对比,然后每种思路都有很多种算法,比如目标检测由Faster-RCNN、YOLOv3/v5/v7/v8/v10/e+、SSD、DERT等多种算法。首先需要找出最好的算法,然后进行改进才能实现项目的最优化,然而项目开发对时间和成本由诸多限制的,逐一对每个开源库跑通训练和部署是成本很大的,怎么能够快速切换不同的算法呢?PaddlePaddle的诸多开源库为项目的开发解决了燃眉之急,不仅提供了最新的各类检测、语义分割、分类等算法,而且通过yaml文件的设置还能对网络进行改造和优化,大大提高了开发的效率,提高了开发的质量。但在实际的使用中发现,用好这些苦需要具备一定的深度学习理论基础,需要对开源库接口和数据标注掌握全面,否则难以选好网络、改好算法,由于开源库缺乏系统化、保姆级的教程,指导工程师开发时仍需要不小的学习成本,甚至有些库有些bug,需要在使用时进行更改。

在实际的部署阶段,由于不同客户的需求不同,需要在不同的平台以不同的方式部署,有些需要在边缘端比如树莓派、Jetson开发板、瑞芯微开发板或者手机安卓端部署;有些需要在工控机上,应客户需要需要使用Visual Studio、QT等IDE开发,要求的语言也不同,有C++、C#、Python等不同需求;有些需要在服务器端,又需要解决多并发、网页端访问的问题。但部署阶段其实并不需要完全学会一门语言,只需要对与深度学习相关的相关语法和理论掌握即可,但市面上的教程都是从语言的基础学起,要学会任何一门语言都要付出很大的代价。

在与其他开发者交流的过程中,发现越来越多的开发者都存在这样的问题或者困惑,这时我们萌发了为何不写一本针对项目开发的教材呢,不仅能够推广人工智能在产业中的应用,也能培养更多的人工智能人才,促进国家的产业升级。

于是,结合开发实例,作者团队撰写了本书,摒弃了复杂的理论基础,而是直接瞄准项目开发需求,以最小的学习成本、最大化的开发效率系统化完成深度学习的学习和主要开源库的开发应用,并针对各类典型的部署平台,提供了开发教程,帮助大家快速掌握深度学习,用好深度学习,做好相关的项目。

希望本书能够为您的理论学习、工程开发、项目应用提供指导,提高效率和开发效果。同时本书资源将随着PaddlePaddle版本的更新同步更新优化,确保可用。由于水平有限,书中难免有错误或疏漏之处,请各位读者批评指正。

相关文章:

深度学习与图像处理(国产深度学习框架——飞桨官方指定教材)

计算机视觉从小白到大师之路 《深度学习与图像处理(PaddlePaddle版)》这一本就够了 1.引言 随着人工智能技术的飞速发展,各行各业对深度学习、图像处理相关领域的人才需求日益迫切。本书旨在通过系统的理论讲解与丰富的实战案例&#xff0…...

音视频入门知识(二)、图像篇

⭐二、图像篇 视频基本要素:宽、高、帧率、编码方式、码率、分辨率 ​ 其中码率的计算:码率(kbps)=文件大小(KB)*8/时间(秒),即码率和视频文件大小成正比 YUV和RGB可相互转换 ★YUV(原始数据&am…...

计算机网络——期末复习(3)4-6章考试重点

第四章 根据IPv4第1个十进制数值判断,127以下为A类,128~191为B类,192~223为C类不能分配给主机或路由器接口的:A类网络号0和127,主机号全为0或全为1私有地址(Private IP Address)是指一类专门保…...

openfeign自动将Boolean默认为false

最近发现项目服务间,通过openfeign调用API时,为null的Boolean类型,接收端反系列化后变为false了,经查发现是通用组件中做了处理,特记录下。 主要是设置了这个 SerializerFeature.WriteNullBooleanAsFalse Bean Cond…...

如何实现底部导航栏

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了TextField Widget,本章回中将介绍BottomNavigationBar Widget。闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中将介绍一个新的Widget:BottomNavigationBar,它就是我们经常在App中看到了底部…...

【深度学习基础|pip安装】pip 安装深度学习库常见错误及解决方案,附案例。

【深度学习基础|pip安装】pip 安装深度学习库常见错误及解决方案,附案例。 【深度学习基础|pip安装】pip 安装深度学习库常见错误及解决方案,附案例。 文章目录 【深度学习基础|pip安装】pip 安装深度学习库常见错误及解决方案,附案例。1. 错…...

org.apache.zookeeper.server.quorum.QuorumPeerMain

QuorumPeerMain源代码 package org.apache.zookeeper.server.quorum;import java.io.IOException; import javax.management.JMException; import javax.security.sasl.SaslException; import org.apache.yetus.audience.InterfaceAudience; import org.apache.zookeeper.audi…...

如何在yolov8中使用ATSS策略

在yolov8中使用的标签匹配策略是TAL,本篇文章解析一下ATSS代码相关实现以及如何把ATSS放到yolov8中使用 看过本专栏中的另外两篇文章的同学应该对v8解析box那一套很熟悉了,ATSS的第一步就是去得到一系列的anchor-box(如果是anchor-based检测方法)或者anchor-point(基…...

常见的邮件协议SMTP和POP3

常见的邮件协议包括SMTP和POP3,SMTP用来发送邮件,POP3用来接收邮件信息。 SMTP SMTP 是一种用于发送电子邮件的协议。它的主要作用是将**电子邮件**从邮件客户端(如 Outlook、Thunderbird)或邮件服务器发送到接收服务器。 SMTP …...

线性代数行列式

目录 二阶与三阶行列式 二元线性方程组与二阶行列式 三阶行列式 全排列和对换 排列及其逆序数 对换 n阶行列式的定义 行列式的性质 二阶与三阶行列式 二元线性方程组与二阶行列式 若是采用消元法解x1、x2的话则得到以下式子 有二阶行列式的规律可得:分…...

cin/cout性能问题讨论和优化⽅法

样例解析: 在上面的两个案例中,我们发现虽然代码的逻辑是相同的,唯一的不同点在于scanf和cout的使用区别,一份超时一份ac,这是为什么呢?是否有可行的优化方法呢? 背景知识: 在 C 中…...

轮胎识别数据集,可对生产流水线里的轮胎图片标注,支持yolo,coco json,voc xml格式的标注,一共785张采集图片

轮胎识别数据集,可对生产流水线里的轮胎图片标注,支持yolo,coco json,voc xml格式的标注,一共785张采集图片 数据集分割 训练组90% 706图片 有效集6% 46图片 测试集4% 33图片 预处理…...

ARM64 Windows 10 IoT工控主板运行x86程序效率测试

ARM上的 Windows 10 IoT 企业版支持仿真 x86 应用程序,而 ARM上的 Windows 11 IoT 企业版则支持仿真 x86 和 x64 应用程序。英创推出的名片尺寸ARM64工控主板ESM8400,可预装正版Windows 10 IoT企业版操作系统,x86程序可无需修改而直接在ESM84…...

Git核心概念

版本控制 什么是版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 除了项目源代码,你可以对任何类型的文件进行版本控制。 为什么要版本控制 有了它你就可以将某个文件回溯到之前的状态,甚至将整…...

Spring Boot spring.factories文件详细说明

优质博文:IT-BLOG-CN 前言:经常看到 spring.factories 文件,却没有对它进行深入的了解和分析,今天我们就一起揭开面纱看看它的内在。 spring.factories 文件是 Spring Boot 自动配置机制的核心部分之一。它位于每个 Spring Boo…...

QWidget应用封装为qt插件,供其他qt应用调用

在之前的文章中,有介绍通过QProcess的方式启动QWidget应用,然后将其窗口嵌入到其他的qt应用中,作为子窗口使用.这篇文章主要介绍qt插件的方式将QWidget应用的窗口封装为插件,然后作为其他Qt应用中的子窗口使用. 插件优点: 与主程序为同一个进程,免去了进程间繁琐的通信方式,…...

Nginx的性能分析与调优简介

Nginx的性能分析与调优简介 一、Nginx的用途二、Nginx负载均衡策略介绍与调优三、其他调优方式简介四、Nginx的性能监控 一、Nginx的用途 ‌Nginx是一种高性能的HTTP和反向代理服务器,最初作为HTTP服务器开发,主要用于服务静态内容如HTML文件、图像、视…...

学习threejs,导入CTM格式的模型

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.ColladaLoader DAE模…...

Lua元表

哈喽,好久没有做记录了,最近刚好有时间打算整理一些基础常用内容,先做一期关于Lua相关的内容热热身。如果内容有误,欢迎大家指出我会积极做出响应。 在Lua中,元表(metatable) 和 元方法&#xf…...

pyqt和pycharm环境搭建

安装 python安装: https://www.python.org/downloads/release/python-3913/ python3.9.13 64位(记得勾选Path环境变量) pycharm安装: https://www.jetbrains.com/pycharm/download/?sectionwindows community免费版 换源: pip config se…...

overleaf中的includegraphics设置图片缩放,居中显示

overleaf中的includegraphics设置图片缩放,居中显示 \includegraphics[width=0.5\textwidth]{example.jpg} \centering 在使用 \includegraphics 命令插入图片时,可以通过设置其参数来缩小图片的显示尺寸,以下是几种常见的方法: 设置宽度或高度 按比例缩小宽度:可以使用…...

USB免驱IC读写器QT小程序开发

USB免驱全协议IC卡读写器QT小程序开发,读取15693卡。 QT小程序UI开发界面: QT程序代码mainWindow.cpp代码如下: MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this); }MainWind…...

Wend看源码-Java-集合学习(List)

摘要 本篇文章深入探讨了基于JDK 21版本的Java.util包中提供的多样化集合类型。在Java中集合共分类为三种数据结构:List、Set和Queue。本文将详细阐述这些数据类型的各自实现,并按照线程安全性进行分类,分别介绍非线程安全与线程安全的实现方…...

只谈C++11新特性 - 删除函数

删除函数 背景 在 C11 之前,C 的类默认会生成拷贝构造函数和赋值运算符。这在某些情况下会引发问题,尤其是在我们希望明确禁止某些操作时。假设我们有一个类,它不希望被拷贝,但未明确声明拷贝构造函数和赋值运算符,这…...

uniapp 文本转语音

uniapp 文本转语音 基于 Minimax API 的 UniApp 文本转语音工具,支持文本分段、队列播放、暂停恢复等功能。目前只内置了 Minimax文本转语音Minimax 的语音生成技术以其自然、情感丰富和实时性强而著称 API_KEY、GroupId 获取方法 https://platform.minimaxi.com…...

1.RPC基本原理

文章目录 RPC1.定义2.概念3.优缺点4.RPC结构5.RPC消息协议5.1 消息边界5.2 内容5.3 压缩 6.RPC的实现6.1 divide_protocol.py6.2 server.py6.3 client.py RPC 1.定义 远程过程调用(remote procedure call) 2.概念 广义:所有通过网络进行通讯,的调用统称为RPC调用 狭义:不采…...

如何从 0 到 1 ,打造全新一代分布式数据架构

导读:本文从 DIKW(数据、信息、知识、智慧) 模型视角出发,探讨数字世界中数据的重要性问题。接着站在业务视角,讨论了在不断满足业务诉求(特别是 AI 需求)的过程中,数据系统是如何一…...

PyPika:Python SQL 查询构建器

什么是 PyPika? Pypika 是一个 Python 库,用于构建 SQL 查询。它提供了一种简洁、直观的方式来生成 SQL 语句,而无需手动编写复杂的 SQL 代码。Pypika 的设计哲学是尽可能地接近 SQL 的自然语法,同时利用 Python 的强大功能来简化…...

剑指Offer|LCR 014. 字符串的排列

LCR 014. 字符串的排列 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。 换句话说,第一个字符串的排列之一是第二个字符串的 子串 。 示例 1: 输入: s1 "ab" s2 "eidbaooo" 输出: True 解…...

通过百度api处理交通数据

通过百度api处理交通数据 1、读取excel获取道路数据 //道路名称Data EqualsAndHashCode public class RoadName {ExcelProperty("Name")private String name; }/*** 获取excel中的道路名称*/private static List<String> getRoadName() {// 定义文件路径&…...

使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器实现可迭代式数据集

2023 年 11 月&#xff0c;Amazon 宣布推出适用于 PyTorch 的 S3 连接器。适用于 PyTorch 的 Amazon S3 连接器提供了专为 S3 对象存储构建的 PyTorch 数据集基元&#xff08;数据集和数据加载器&#xff09;的实现。它支持用于随机数据访问模式的地图样式数据集和用于流式处理…...

c++编译过程初识

编译过程 预处理&#xff1a;主要是执行一些预处理指令&#xff0c;主要是#开头的代码&#xff0c;如#include 的头文件、#define 定义的宏常量、#ifdef #ifndef #endif等条件编译的代码&#xff0c;具体包括查找头文件、进行宏替换、根据条件编译等操作。 g -E example.cpp -…...

Java旅程(五)Spring 框架与微服务架构 了解 JVM 内部原理和调优

在现代企业级应用中&#xff0c;Spring 框架和微服务架构已经成为主流技术&#xff0c;而 Java 虚拟机&#xff08;JVM&#xff09;的理解和调优对于保证应用的高性能和稳定性也至关重要。本篇博客将深入讲解 Spring 框架与微服务架构&#xff0c;并进一步探讨 JVM 内部原理和调…...

SWAT-MODFLOW地表水-地下水耦合模型建模;QSWATMOD实现SWAT-MODFLOW联合

SWAT-MODFLOW地表水-地下水耦合建模的应用重要性&#xff1a; 1.全面性&#xff1a;耦合模型能够同时考虑地表水和地下水的相互作用&#xff0c;提供了一个更全面的水文循环模拟框架。2.准确性&#xff1a;通过耦合地表水和地下水模型&#xff0c;可以提高水文模拟的准确性&…...

Azure Function 解决跨域问题

这边前端call本地部署的azure function出现了跨域问题&#xff0c;搜索一下解决方案 直接修改local.setting.json&#xff0c;在其中添加CORS配置为通配符”*”&#xff0c;就行了 local.settings.json {"IsEncrypted": false,"Values": {"PYTHON_E…...

金融租赁系统的创新发展与市场竞争力提升探讨

内容概要 随着经济的快速发展&#xff0c;金融租赁系统逐渐成为金融市场中不可或缺的一环。它不仅提供了灵活的资金解决方案&#xff0c;还促进了企业的资本结构优化与资源配置效率。因此&#xff0c;了解该系统的市场背景与发展现状至关重要。 在现今环境下&#xff0c;新兴…...

Rust: offset祼指针操作

offset是偏移元素个数&#xff0c;不是字节数&#xff01; fn main(){let student_a Student{id:20240001,name:"张三娃".into(),class_id:3,age:14,grade:1};let student_b Student{id:20240002,name:"李四牛".into(),class_id:3,age:15,grade:1};let …...

【C#】WPF设置Separator为垂直方向

1. 方法1 <Separator BorderBrush"Gray"><Separator.LayoutTransform><RotateTransform Angle"90" /></Separator.LayoutTransform> </Separator>2. 方法2 <Separator Style"{StaticResource {x:Static ToolBar.S…...

常见的限流算法

常见的限流算法 限流的定义固定窗口算法滑动窗口算法漏桶算法&#xff08;推荐&#xff09;令牌桶算法(推荐)限流粒度本地限流&#xff08;单机限流&#xff09;分布式限流&#xff08;多机限流&#xff09;分布式限流的实现 限流的定义 限流&#xff0c;也称流量控制。是指系统…...

图文教程:使用PowerDesigner导出数据库表结构为Word/Html文档

1、第一种情况-无数据库表&#xff0c;但有数据模型 1.1 使用PowerDesigner已完成数据建模 您已经使用PowerDesigner完成数据库建模&#xff0c;如下图&#xff1a; 1.2 Report配置和导出 1、点击&#xff1a;Report->Reports&#xff0c;如下图&#xff1a; 2、点击&…...

7-7 旅行售货员

目录 题目描述 输入格式: 输出格式: 输入样例: 输出样例: 解题思路&#xff1a; 详细代码&#xff1a; 题目描述 某售货员要到若干城市去推销商品&#xff0c;已知各城市之间的路程(或旅费)。他要选定一条从驻地出发&#xff0c;经过每个城市一遍&#xff0c;最后回到驻地的路…...

QT写的动态正弦曲线图显示并打印

创建一个显示正弦曲线的 QChartView&#xff0c;并通过定时器不断更新图表数据&#xff0c;模拟动态数据。此外&#xff0c;还包含了一个在特定时间自动将图表导出为 PDF 文件的功能。 代码分析和注释 #include <QApplication> #include <QMainWindow> #include &…...

AI开发:决策树模型概述与实现:从训练到评估和可视化 - Python

通过前面的一些练习&#xff0c;我们已经学习了支持向量机、 回归、 鸢尾花模型 、卷积、 知识图谱、 生成式对抗网络、 K近邻、 等AI算法的基本概念&#xff0c;熟悉了一些常用的AI库&#xff0c;并且使用PYTHON大法进行了一些实战练习。接下来&#xff0c;我们向更深一层的概…...

MySQL 性能瓶颈,为什么 MySQL 表的数据量不能太大?

MySQL的性能瓶颈(为什么MySQL有几万的qps,怎么来的?性能分析 为什么 MySQL 表不能太大网上大部分人的说法:问题的关键: B树层数对查询性能的影响到底有多大? 是什么导致的 MySQL 查询缓慢?如何解决: MySQL的性能瓶颈(为什么MySQL有几万的qps,怎么来的? 一个全表扫描的查询…...

Vue中接入萤石等直播视频(更新中ing)

一、萤石&#xff1a; 1. 萤石云开发文档&#xff1a; https://open.ys7.com/help/31 2、安装&#xff1a; npm install ezuikit-js --save 3、在文件中引用&#xff1a;import EZUIKit from ezuikit-js 4、具体代码&#xff1a; 获取accessToken&#xff1a;https://open.…...

25 go语言(golang) - 内存分配机制原理

Go 语言的内存分配机制是一个复杂且高效的系统&#xff0c;旨在为程序提供快速和安全的内存管理。理解 Go 的内存分配有助于编写更高效的代码&#xff0c;并优化程序性能。 一、内存区域 栈&#xff08;Stack&#xff09; 栈用于函数调用时的临时变量分配。栈上的内存在函数返…...

【Linux命令】ps -a 和 ps -ef 的区别

ps -a 和 ps -ef 是 ps&#xff08;process status&#xff09;命令的不同选项&#xff0c;它们用于显示不同的进程信息。以下是这两个选项的主要区别&#xff1a; ps -a -a 选项表示显示所有拥有终端的进程&#xff0c;但不包括守护进程&#xff08;daemon processes&#x…...

几个支持用户名密码的代理链工具: glider, gost, proxychains+microsocks

几个支持用户名密码的代理链工具: glider, gost, proxychainsmicrosocks gost -L:7777 -Fsocks5://192.168.2.20:7575 -Fsocks5://user:passwd1.1.1.1:10086 -Dgost&#xff1a;(https://github.com/ginuerzh/gost) 参考 https://www.quakemachinex.com/blog/279.html...

编译安装教程

编译教程 下面是一个完整的从源码编译安装软件的教程&#xff0c;涵盖了从环境准备到配置、编译、安装的所有可能会用到的步骤和细节&#xff0c;适用于各种类型的软件包。 一、环境准备 在开始编译源码之前&#xff0c;确保系统满足以下条件&#xff1a; 1. 安装必要工具 …...

计算机网络-物理层

1.1传输媒体&#xff1a; 导引型传输媒体&#xff1a;双绞线&#xff0c;同轴电缆&#xff0c;光纤 非导引型传输媒体&#xff1a;微波通信&#xff08;2&#xff5e;40GHz&#xff09; 1.2传输方式: 串行传输&#xff1a;一个接一个的依次传输 并行传输&#xff1a;一次发送n…...