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

怎么系统的学习机器学习、深度学习?当然是看书了

目录

前言

内容简介

学完本书,你将能够

作者简介

本书目录

京东自购链接


前言


近年来,机器学习方法凭借其理解海量数据和自主决策的能力,已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从AlexNet模型在2012年ImageNet大赛被提出以来,机器学习和深度学习迅猛发展,取得了一个又一个里程碑式的成就,深刻地影响了工业界、学术界和人们的生活。

如今,机器学习、深度学习、人工智能已经成为信息领域最热门的研究方向,在就业市场这些领域的工作也非常吸引人。科学的巨大飞跃通常来自精彩的想法和易用的工具,机器学习也不例外。

在实践中应用机器学习需要理论和工具的结合。对于机器学习的入门读者而言, 从理解原理概念到确定要安装的软件包都有一定的难度。许多在最开始尝试机器学习的时候,会发现理解一个算法在干什么真的非常难。不仅仅是因为算法里各种繁杂的数学理论和难懂的符号,没有实际的例子,光靠定义和推导来了解一个算法实在是很无聊。就连网络上的相关的指导材料,能找到的通常都是各种公式以及晦涩难懂的解释,很少有人能够细致的将所有细节加以说明。

因此,《Python机器学习:基于PyTorch和Scikit-Learn》这本书的定位是把机器学习理论和工程实践结合起来,从而降低读者的阅读门槛。从数据驱动方法的基础知识到最新的深度学习框架,本书每一章都提供了机器学习代码示例,用于解决实际应用中的机器学习问题。

《Python机器学习:基于PyTorch和Scikit-Learn》

[美]塞巴斯蒂安·拉施卡、[美]刘玉溪(海登)、

[美]瓦希德·米尔贾利利 著 

Python深度学习“四大名著”之一全新PyTorch版
PyTorch核心维护者Dmytro Dzhulgakov

亲笔作序推荐

本书既介绍了了机器学习领域的基本原理, 也介绍了机器学习的工程实践。本书的价值无可估量,同时也希望这本书能够激励读者将机器学习用于自己的研究领域。

内容简介


本书是一本全面介绍在PyTorch环境下学习机器学习和深度学习的综合指南,可以作为初学者的入门教程,也可以作为读者开发机器学习项目时的参考书。

本书讲解清晰、示例生动,深入介绍了机器学习方法的基础知识,不仅提供了构建机器学习模型的说明,而且提供了构建机器学习模型和解决实际问题的基本准则。本书添加了基于PyTorch的深度学习内容,介绍了新版Scikit-Learn。本书涵盖了多种用于文本和图像分类的机器学习与深度学习方法,介绍了用于生成新数据的生成对抗网络(GAN)和用于训练智能体的强化学习。最后,本书还介绍了深度学习的新动态,包括图神经网络和用于自然语言处理(NLP)的大型transformer。无论是机器学习入门新手,还是计划跟踪机器学习进展的研发人员,都可以将本书作为使用Python进行机器学习的不二之选。

学完本书,你将能够


  • 探索机器从数据中“学习”的框架、模型和方法。

  • 使用Scikit-Learn实现机器学习,使用PyTorch实现深度学习。

  • 训练机器学习分类器分类图像、文本等数据。

  • 构建和训练神经网络、transformer及图神经网络。

  • 探索评估和优化模型的最佳方法。

  • 使用回归分析预测连续目标结果。

  • 使用情感分析深入地挖掘文本和社交媒体数据。

作者简介


塞巴斯蒂安·拉施卡(Sebastian Raschka)
获密歇根州立大学博士学位,现在是威斯康星-麦迪逊大学统计学助理教授,从事机器学习和深度学习研究。他的研究方向是数据受限的小样本学习和构建预测有序目标值的深度神经网络。他还是一位开源贡献者,担任Grid.ai的首席AI教育家,热衷于传播机器学习和AI领域知识。
刘玉溪(海登)[ Yuxi (Hayden) Liu ]
在谷歌公司担任机器学习软件工程师,曾担任机器学习科学家。他是一系列机器学习书籍的作者。他的第一本书Python Machine Learning By Example在2017年和2018年亚马逊同类产品中排名第一,已被翻译成多种语言。
瓦希德·米尔贾利利(Vahid Mirjalili)
获密歇根州立大学机械工程和计算机科学双博士学位,是一名专注于计算机视觉和深度学习的科研工作者。

作者Sebastian Raschka很擅长用易于理解的方式解释复杂的方法和概念。随着深度学习革命深入到各个领域,Sebastian Raschka和他的团队不断升级、完善书的内容,陆续出版了第2版和第3版。本书在前3个版本的基础上新增了某些章节,包含了PyTorch相关的内容,覆盖了Transformer和图神经网络。这些是目前深度学习领域的前沿方法,在过去两年中席卷了文本理解和分子结构等领域。

作者拥有专业知识和解决实际问题的经验,因此出色地平衡了书中的理论知识和动手实践内容。Sebastian Raschka和Vahid Mirjalili在计算机视觉和计算生物学领域拥有丰富的科研经验。Yuxi Liu擅长解决机器学习领域的实际问题,例如将机器学习方法用于事件预测、推荐系统等。本书的作者都对教育有着满腔热忱,他们用浅显易懂的语言编写了本书以满足读者的需求。

本书目录


第1章 赋予计算机从数据中学习的能力1

 1.1 将数据转化为知识的智能系统1

 1.2 三种机器学习类型2

1.2.1 用于预测未来的监督学习2

1.2.2 解决交互问题的强化学习4

1.2.3 发现数据中隐藏规律的无监督学习 5

 1.3 基本术语与符号6

1.3.1 本书中使用的符号和约定6

1.3.2 机器学习术语8

 1.4 构建机器学习系统的路线图8

1.4.1 数据预处理——让数据可用8

1.4.2 训练和选择预测模型9

1.4.3 使用未见过的数据对模型进行评估10

 1.5 使用Python实现机器学习算法10

1.5.1 从Python Package Index中安装Python和其他软件包10

1.5.2 使用Anaconda Python

软件包管理器11

1.5.3 科学计算、数据科学和机器学习软件包12

 1.6 本章小结13

第2章 训练简单的机器学习分类算法14

 2.1 人工神经元——机器学习早期历史一瞥14

2.1.1 人工神经元的定义15

2.1.2 感知机学习规则16

 2.2 使用Python实现感知机学习算法19

2.2.1 面向对象的感知机API19

2.2.2 使用鸢尾花数据集训练感知机22

 2.3 自适应线性神经元与算法收敛27

2.3.1 使用梯度下降法最小化损失函数28

2.3.2 在Python中实现Adaline30

2.3.3 通过特征缩放改进梯度下降34

2.3.4 大规模机器学习与随机梯度下降36

 2.4 本章小结41

第3章 ScikitLearn机器学习分类算法之旅42

 3.1 分类算法的选择42

 3.2 学习ScikitLearn的第一步——训练感知机43

 3.3 用逻辑回归算法建模分类概率48

3.3.1 逻辑回归与条件概率48

3.3.2 用逻辑损失函数更新模型权重51

3.3.3 从Adaline的代码实现到逻辑回归的代码实现53

3.3.4 用ScikitLearn训练逻辑回归模型56

3.3.5 使用正则化避免模型过拟合59

 3.4 基于最大分类间隔的支持向量机62

3.4.1 理解最大分类间隔62

3.4.2 使用松弛变量解决非线性可分问题62

3.4.3 ScikitLearn中另外一种实现64

 3.5 使用核支持向量机求解非线性问题64

3.5.1 处理线性不可分数据的核方法64

3.5.2 使用核方法在高维空间中寻找分离超平面66

 3.6 决策树学习69

3.6.1 最大化信息增益70

3.6.2 构建决策树73

3.6.3 多棵决策树组成随机森林76

 3.7 基于惰性学习策略的k近邻算法78

 3.8 本章小结81

第4章 构建良好的训练数据集——数据预处理83

 4.1 处理缺失值83

4.1.1 识别表格数据中的缺失值83

4.1.2 删除含有缺失值的样本或特征85

4.1.3 填补缺失值85

4.1.4 ScikitLearn的估计器86

 4.2 处理类别数据87

4.2.1 用pandas实现类别数据编码88

4.2.2 映射有序特征88

4.2.3 类别标签编码89

4.2.4 标称特征的独热编码90

 4.3 将数据集划分为训练数据集和测试数据集93

 4.4 使特征具有相同的尺度95

 4.5 选择有意义的特征97

4.5.1 用L1和L2正则化对模型复杂度进行惩罚98

4.5.2 L2正则化的几何解释98

4.5.3 L1正则化与稀疏解99

4.5.4 序贯特征选择算法102

 4.6 用随机森林评估特征重要性107

 4.7 本章小结109

第5章 通过降维方法压缩数据110

 5.1 无监督降维的主成分分析方法110

5.1.1 主成分分析的主要步骤110

5.1.2 提取主成分的步骤112

5.1.3 总方差和被解释的方差114

5.1.4 特征变换115

5.1.5 用ScikitLearn实现主成分分析118

5.1.6 评估特征的贡献120

 5.2 监督数据压缩的线性判别分析方法122

5.2.1 主成分分析与线性判别分析122

5.2.2 线性判别分析基本原理123

5.2.3 计算散布矩阵124

5.2.4 为新特征子空间选择线性判别式126

5.2.5 将样本投影到新的特征空间128

5.2.6 用ScikitLearn实现线性判别分析128

 5.3 非线性降维和可视化130

5.3.1 非线性降维的不足130

5.3.2 使用tSNE可视化数据131

 5.4 本章小结135

第6章 模型评估和超参数调优的最佳实践136

 6.1 使用pipeline方法简化工作流程136

6.1.1 加载威斯康星乳腺癌数据集136

6.1.2 在pipeline中集成转换器和估计器138

 6.2 使用k折交叉验证评估模型性能140

6.2.1 holdout交叉验证140

6.2.2 k折交叉验证140

 6.3 用学习曲线和验证曲线调试算法144

6.3.1 使用学习曲线解决偏差和方差问题144

6.3.2 使用验证曲线解决过拟合和欠拟合问题146

 6.4 通过网格搜索微调机器学习模型148

6.4.1 通过网格搜索调整超参数148

6.4.2 通过随机搜索更广泛地探索超参数的配置149

6.4.3 连续减半超参数的搜索算法151

6.4.4 嵌套交叉验证153

 6.5 模型性能评估指标154

6.5.1 混淆矩阵155

6.5.2 精确率和召回率156

6.5.3 绘制ROC曲线158

6.5.4 多分类器评价指标160

6.5.5 处理类别不均衡问题161

 6.6 本章小结163

第7章 组合不同模型的集成学习164

 7.1 集成学习164

 7.2 通过绝对多数投票组合分类器167

7.2.1 实现一个简单的基于绝对多数投票的集成分类器167

7.2.2 使用绝对多数投票原则进行预测171

7.2.3 评估和调整集成分类器173

 7.3 bagging——基于bootstrap样本构建集成分类器179

7.3.1 bagging简介179

7.3.2 使用bagging对葡萄酒数据集中的样本进行分类180

 7.4 通过自适应boosting提高弱学习器的性能184

7.4.1 boosting的工作原理184

7.4.2 用ScikitLearn实现AdaBoost188

 7.5 梯度boosting——基于损失梯度训练集成分类器191

7.5.1 比较AdaBoost与梯度boosting191

7.5.2 通用的梯度boosting算法概述191

7.5.3 解释用于分类的梯度boosting算法193

7.5.4 用梯度boosting分类的例子194

7.5.5 使用XGBoost196

 7.6 本章小结197

第8章 用机器学习进行情感分析198

 8.1 对IMDb影评数据进行文本处理198

8.1.1 获取影评数据集199

8.1.2 将影评数据集预处理成更易使用的格式199

 8.2 词袋模型201

8.2.1 将单词转换为特征向量201

8.2.2 通过词频-逆文档频率评估单词的相关性203

8.2.3 文本数据清洗204

8.2.4 将文档处理成token206

 8.3 训练用于文档分类的逻辑回归模型208

 8.4 处理更大的数据——在线算法

和核外学习方法210

 8.5 用潜在狄利克雷分配实现主题

建模213

8.5.1 使用LDA分解文本

文档214

8.5.2 用ScikitLearn实现

LDA214

 8.6 本章小结217

第9章 预测连续目标变量的

回归分析218

 9.1 线性回归简介218

9.1.1 简单线性回归218

9.1.2 多元线性回归219

 9.2 探索艾姆斯住房数据集220

9.2.1 将艾姆斯住房数据集加载

到DataFrame中220

9.2.2 可视化数据集的重要

特征222

9.2.3 使用相关矩阵查看

相关性223

 9.3 最小二乘线性回归模型的

实现225

9.3.1 用梯度下降法求解回归

参数225

9.3.2 用ScikitLearn估计回归

模型的系数229

 9.4 使用RANSAC拟合稳健回归

模型231

 9.5 评估线性回归模型的性能233

 9.6 使用正则化方法进行回归237

 9.7 将线性回归模型转化为曲线——

多项式回归238

9.7.1 使用ScikitLearn添加

多项式项239

9.7.2 建模艾姆斯住房数据

集中的非线性关系240

 9.8 使用随机森林处理非线性

关系243

9.8.1 决策树回归243

9.8.2 随机森林回归245

 9.9 本章小结247

第10章 处理无标签数据的

聚类分析248

 10.1 使用k均值算法对样本分组248

10.1.1 用ScikitLearn实现

k均值聚类248

10.1.2 k均值++——更聪明的

簇初始化方法252

10.1.3 硬聚类与软聚类253

10.1.4 用肘方法求解最优簇的

数量255

10.1.5 通过轮廓图量化聚类

质量255

 10.2 把簇组织成层次树260

10.2.1 自底向上的聚类260

10.2.2 在距离矩阵上进行分层

聚类262

10.2.3 热度图与树状图

结合265

10.2.4 通过ScikitLearn进行

凝聚聚类266

 10.3 通过DBSCAN定位高密度

区域267

 10.4 本章小结272

第11章 从零开始实现多层人工神经网络273

 11.1 用人工神经网络建立复杂函数

模型273

11.1.1 单层神经网络274

11.1.2 多层神经网络结构275

11.1.3 利用前向传播激活神经

网络277

 11.2 识别手写数字279

11.2.1 获取并准备MNIST

数据集279

11.2.2 实现多层感知机282

11.2.3 神经网络训练代码287

11.2.4 评估神经网络的

性能291

 11.3 训练人工神经网络295

11.3.1 损失函数的计算295

11.3.2 理解反向传播296

11.3.3 通过反向传播训练

神经网络297

 11.4 关于神经网络的收敛性300

 11.5 关于神经网络实现的最后

几句话300

 11.6 本章小结301

第12章 用PyTorch并行训练

张量306

神经网络302

 12.1 PyTorch和模型的训练性能302

12.1.1 性能挑战302

12.1.2 什么是PyTorch303

12.1.3 如何学习PyTorch304

 12.2 学习PyTorch的第一步304

12.2.1 安装PyTorch305

12.2.2 在PyTorch中创建

12.2.3 对张量形状和数据

类型进行操作307

12.2.4 张量数学运算307

12.2.5 拆分、堆叠和连接

张量309

 12.3 在PyTorch中构建输入

pipeline310

12.3.1 使用已有张量创建

PyTorch DataLoader

311

12.3.2 将两个张量组合成

一个联合数据集311

12.3.3 乱序、批处理和

重复313

12.3.4 用存储在本地硬盘的

文件创建数据集314

12.3.5 从torchvision.datasets

库中获取数据集318

 12.4 在PyTorch中构建神经网络模型321

12.4.1 PyTorch神经网络模块322

12.4.2 构建线性回归模型322

12.4.3 使用torch.nn和

torch.optim模块

训练模型325

12.4.4 构建多层感知机对鸢尾花数据集分类326

12.4.5 在测试数据集上评估训练好的模型329

12.4.6 保存和重新加载训练好的模型329

 12.5 为多层神经网络选择激活函数330

12.5.1 回顾逻辑函数331

12.5.2 使用softmax函数估计多分类中的

类别概率332

12.5.3 使用双曲正切函数拓宽输出范围333

12.5.4 整流线性单元335

 12.6 本章小结337

第13章 深入探讨PyTorch的

工作原理338

 13.1 PyTorch的主要功能338

 13.2 PyTorch的计算图339

13.2.1 理解计算图339

13.2.2 在PyTorch中创建计算图339

 13.3 用于存储和更新模型参数的

PyTorch张量340

 13.4 通过自动微分计算梯度342

13.4.1 计算损失函数关于

可微变量的梯度342

13.4.2 自动微分343

13.4.3 对抗样本344

 13.5 使用torch.nn模块简化常见

结构344

13.5.1 使用nn.Sequential

实现模型344

13.5.2 选择损失函数345

13.5.3 解决XOR分类

问题346

13.5.4 使用nn.Module灵活

构建模型350

13.5.5 使用PyTorch编写

自定义层352

 13.6 项目1:预测汽车的燃油

效率356

13.6.1 使用特征列357

13.6.2 训练DNN回归

模型360

 13.7 项目2:分类MNIST手写

数字362

XIX

 13.8 高级PyTorch API:PyTorch

Lightning简介364

13.8.1 构建PyTorch Lightning

模型365

13.8.2 为Lightning 设置数据

加载器367

13.8.3 使用PyTorch Lightning 

Trainer类训练模型369

13.8.4 使用TensorBoard评估

模型370

 13.9 本章小结373

第14章 使用深度卷积神经网络

对图像进行分类374

 14.1 卷积神经网络的组成模块374

14.1.1 了解卷积神经网络和

层次特征375

14.1.2 离散卷积376

14.1.3 下采样层383

XX

 14.2 构建卷积神经网络385

14.2.1 处理多个输入通道385

14.2.2 使用L2范数和dropout

对神经网络正则化388

14.2.3 分类任务的损失

函数390

 14.3 使用PyTorch实现深度卷积

神经网络392

14.3.1 多层卷积神经网络

结构392

14.3.2 数据加载和预处理393

14.3.3 使用torch.nn模块

实现卷积神经网络394

 14.4 使用卷积神经网络对人脸图像

进行微笑分类400

14.4.1 加载CelebA

数据集400

14.4.2 图像转换和数据

增广401

14.4.3 训练卷积神经网络

微笑分类器407

 14.5 本章小结413

第15章 用循环神经网络对序列

数据建模415

 15.1 序列数据415

15.1.1 序列数据建模415

15.1.2 序列数据与时间序列

数据416

15.1.3 序列数据的表示416

15.1.4 序列建模方法417

 15.2 用于序列数据建模的循环

神经网络418

15.2.1 循环神经网络的循环

机制418

15.2.2 循环神经网络激活值

计算419

15.2.3 隐藏层循环与输出层

循环421

15.2.4 远距离学习面临的

问题424

15.2.5 长短期记忆网络425

 15.3 在PyTorch中实现循环神经

网络426

15.3.1 项目1:基于IMDb

影评进行情感分析427

15.3.2 项目2:在PyTorch

中实现字符级语言

建模437

 15.4 本章小结448

第16章 transformer:利用

注意力机制改善自然

语言处理效果449

 16.1 带有注意力机制的循环神经

网络449

16.1.1 帮助循环神经网络获取

信息的注意力机制450

16.1.2 循环神经网络中最初的

注意力机制451

16.1.3 用双向循环神经网络

模型处理输入数据452

16.1.4 根据上下文向量得到输出452

16.1.5 计算注意力权重453

 16.2 自注意力机制453

16.2.1 自注意力机制的基本形式454

16.2.2 自注意力机制的参数化:

缩放点积注意力457

 16.3 注意力是唯一需要的:最初的

transformer460

16.3.1 通过多头注意力编码上下文嵌入向量460

16.3.2 学习语言模型:解码器和掩码多头注意力464

16.3.3 实现细节:位置编码和层归一化465

 16.4 利用未标注的数据构建大型语言模型467

16.4.1 预训练和微调transformer模型467

16.4.2 使用未标注数据的GPT模型469

16.4.3 使用GPT2生成新文本471

16.4.4 双向预训练的BERT模型474

16.4.5 两全其美的模型:BART476

 16.5 用PyTorch微调BERT模型478

16.5.1 加载IMDb影评数据集479

16.5.2 数据集分词481

16.5.3 加载和微调预训练BERT模型482

16.5.4 使用Trainer API微调transformer486

 16.6 本章小结489

第17章 用于合成新数据的生成

对抗网络491

 17.1 生成对抗网络491

17.1.1 自编码器492

17.1.2 用于合成新数据的生成

模型493

17.1.3 用生成对抗网络生成

新样本494

17.1.4 理解生成对抗网络模型

中生成器和判别器网络

的损失函数495

 17.2 从零开始实现生成对抗网络497

17.2.1 用谷歌Colab训练生成

对抗网络模型497

17.2.2 实现生成器和判别器网络499

17.2.3 定义训练数据集502

17.2.4 训练生成对抗网络模型504

 17.3 用卷积GAN和Wasserstein GAN提高生成图像的质量510

17.3.1 转置卷积510

17.3.2 批归一化511

17.3.3 实现生成器和判别器513

17.3.4 两个分布之间的差异度度量520

17.3.5 在生成对抗网络实践中使用EM距离523

17.3.6 梯度惩罚523

17.3.7 使用WGANGP实现深度卷积生成对抗网络524

17.3.8 模式坍塌527

 17.4 其他生成对抗网络应用529

 17.5 本章小结530

XXII

第18章 用于捕获图数据关系的

图神经网络531

 18.1 图数据简介531

18.1.1 无向图532

18.1.2 有向图533

18.1.3 标签图533

18.1.4 将分子结构表示

为图533

 18.2 理解图卷积534

18.2.1 图卷积的基本原理534

18.2.2 实现一个基本的图卷积

函数536

 18.3 用PyTorch从零开始实现图神经

网络540

18.3.1 定义NodeNetwork

模型540

18.3.2 NodeNetwork图卷积层

编码541

18.3.3 添加一个全局池化层

处理大小不同的图542

18.3.4 准备数据加载工具545

18.3.5 使用NodeNetwork进行

预测548

18.3.6 使用PyTorch Geometric

库实现图神经网络548

 18.4 其他图神经网络层和最新的

进展554

18.4.1 谱图卷积554

18.4.2 池化555

18.4.3 数据归一化556

18.4.4 图神经网络文献557

 18.5 本章小结559

第19章 在复杂环境中做决策的

强化学习560

 19.1 从经验中学习概述560

19.1.1 了解强化学习561

19.1.2 智能体与环境562

 19.2 强化学习的理论基础563

19.2.1 马尔可夫决策过程563

19.2.2 阶段性任务与持续性

任务566

19.2.3 强化学习术语566

19.2.4 使用贝尔曼方程的动态

规划569

 19.3 强化学习算法569

19.3.1 动态规划570

19.3.2 蒙特卡罗强化学习572

19.3.3 时序差分学习573

 19.4 实现第一个强化学习算法575

19.4.1 OpenAI Gym工具包介绍575

19.4.2 用Q学习解决网格世界问题584

 19.5 深度Q学习概览588

19.5.1 训练深度Q学习网络模型589

19.5.2 实现深度Q学习算法591

 19.6 本章小结及本书总结595

京东自购链接


Python机器学习:基于PyTorch和Scikit-Learn【图片 价格 品牌 评论】-京东 (jd.com)

相关文章:

怎么系统的学习机器学习、深度学习?当然是看书了

目录 前言 内容简介 学完本书,你将能够 作者简介 本书目录 京东自购链接 前言 近年来,机器学习方法凭借其理解海量数据和自主决策的能力,已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从Ale…...

无涯教程-Perl - binmode函数

描述 此函数设置在区分两者的操作系统上以二进制形式读取和写入FILEHANDLE的格式。非二进制文件的CR LF序列在输入时转换为LF,在LF时在输出时转换为CR LF。这对于使用两个字符分隔文本文件中的行的操作系统(MS-DOS)至关重要,但对使用单个字符的操作系统(Unix,Mac OS,QNX)没有影…...

Spring Boot Maven package时显式的跳过test内容

在pom.xml的编译插件部分显式的增加一段内容&#xff1a; <plugin> <!-- maven打包时&#xff0c;显式的跳过test部分 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.…...

排序算法————基数排序(RadixSort)

基数排序的概念&#xff1a; 什么是基数排序&#xff1f;&#xff1f;&#xff1f;基数排序是一种和快排、归并、希尔等等不一样的排序...它不需要比较和移动就可以完成整型的排序。它是时间复杂度是O&#xff08;K*N&#xff09;&#xff0c;空间复杂度是O&#xff08;KM&…...

leetcode做题笔记75颜色分类

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决…...

聊一下互联网开源变现

(点击即可收听) 互联网开源变现其实是指通过开源软件或者开放源代码的方式&#xff0c;实现收益或盈利。这种方式越来越被广泛应用于互联网行业 在互联网开源变现的模式中&#xff0c;最常见的方式是通过捐款、广告、付费支持或者授权等方式获利。 例如&#xff0c;有些开源软件…...

PHP日期差计算器,计算两个时间相差 年/月/日

1. 计算两个日期相隔多少年&#xff0c;多少月&#xff0c;多少天示例&#xff1a;laravel框架实现 /*** 天数计算* return \Illuminate\Http\JsonResponse*/public function loveDateCal(){$start_date $this->request(start_date);$end_date $this->request(end_date…...

20230812在WIN10下使用python3将SRT格式的字幕转换为SSA格式

20230812在WIN10下使用python3将SRT格式的字幕转换为SSA格式 2023/8/12 20:58 本文的SSA格式以【Batch Subtitles Converter(批量字幕转换) v1.23】的格式为准&#xff01; 1、 缘起&#xff1a;网上找到的各种各样的字幕转换软件/小工具都不是让自己完全满意&#xff01; 【都…...

matlab使用教程(13)—稀疏矩阵创建和使用

使用稀疏矩阵存储包含众多零值元素的数据&#xff0c;可以节省大量内存并加快该数据的处理速度。sparse 是一种属性&#xff0c;可以将该属性分配给由 double 或 logical 元素组成的任何二维 MATLAB 矩阵。通过 sparse 属性&#xff0c;MATLAB 可以&#xff1a; • 仅存储矩…...

UI美工设计的主要职责(合集)

UI美工设计的主要职责1 职责&#xff1a; 1、执行公司的规章制度及专业管理办法; 2、 负责重点项目的原型设计和产品流程设计、视觉设计&#xff0c;优化网站和移动端的设计流程和规范&#xff0c;制定产品 UI/UE规范及文档编写; 3、负责使用PS、AI、illustrator、MarkMan、…...

【前端二次开发框架关于关闭eslint】

前端二次开发框架关于关闭eslint 方法一方法二方法三方法四&#xff1a;以下是若想要关闭项目中的部分代码时&#xff1a; 方法一 在vue.config.js里面进行配置&#xff1a; module.exports {lintOnSave:false,//是否开启eslint保存检测 ,它的有效值为 true || false || err…...

Scractch3.0_Arduino_ESP32_学习随记_蓝牙键盘(三)

C02蓝牙键盘 目的器材程序联系我们 目的 通过C02实现蓝牙键盘 器材 硬件: 齐护机器人C02 购买地址 软件: scratch3.0 下载地址:官网下载 程序 在P5口连接按钮模块。 蓝牙键盘组合按键动作的实现。 当对应按键按下时模拟键盘动作&#xff0c;先按下ctrl然后按下对应组合键…...

Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI

详细错误信息如下&#xff1a; 复制代码 19/03/19 11:04:18 INFO util.log: Logging initialized 5402ms 19/03/19 11:04:18 INFO server.Server: jetty-9.3.z-SNAPSHOT 19/03/19 11:04:18 INFO server.Server: Started 5604ms 19/03/19 11:04:18 WARN util.Utils: Service ‘S…...

LeetCode 2811. Check if it is Possible to Split Array【脑筋急转弯;前缀和+动态规划或记忆化DFS】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

【学习日记】【FreeRTOS】链表结构体及函数详解

写在前面 本文主要是对于 FreeRTOS 中链表相关内容的详细解释&#xff0c;代码大部分参考了野火FreeRTOS教程配套源码&#xff0c;作了一小部分修改。 一、结构体定义 主要包含三种结构体&#xff1a; 普通节点结构体结尾节点&#xff08;mini节点&#xff09;结构体链表结…...

【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA)

【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA) 什么是弹性伸缩 「Autoscaling即弹性伸缩&#xff0c;是Kubernetes中的一种非常核心的功能&#xff0c;它可以根据给定的指标&#xff08;例如 CPU 或内存&#xff09;自动缩放Pod副本&#xff0c;从而可以更好地管…...

Windows、 Linux 等操作系统的基本概念及其常见操作

Windows 和 Linux 是两种常见的操作系统&#xff0c;它们在计算机领域中广泛使用。下面我将为您介绍它们的基本概念以及一些常见的操作。 **Windows 操作系统&#xff1a;** 1. **基本概念&#xff1a;** Windows 是由微软公司开发的操作系统系列&#xff0c;旨在为个人计算机…...

【RabbitMQ】golang客户端教程5——使用topic交换器

topic交换器&#xff08;主题交换器&#xff09; 发送到topic交换器的消息不能具有随意的routing_key——它必须是单词列表&#xff0c;以点分隔。这些词可以是任何东西&#xff0c;但通常它们指定与消息相关的某些功能。一些有效的routing_key示例&#xff1a;“stock.usd.ny…...

SpringBoot对接OpenAI

SpringBoot对接OpenAI 随着人工智能技术的飞速发展&#xff0c;越来越多的开发者希望将智能功能集成到自己的应用中&#xff0c;以提升用户体验和应用的功能。OpenAI作为一家领先的人工智能公司&#xff0c;提供了许多先进的自然语言处理和语言生成模型&#xff0c;其中包括深…...

(C++)继承

目录 1.继承的概念及定义 1.1继承的概念 1.2继承定义 1.2.1定义格式 1.2.2继承方式和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6.继承与静态成员 7.复杂的菱形继承及菱形虚拟…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...