【Pytorch Lighting】第 1 章:PyTorch Lightning adventure

news2024/11/28 22:52:11

 🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】

 🖍foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

文章目录

是什么让 PyTorch Lightning 如此特别?

第一个…。

这么多框架?

PyTorch 与 TensorFlow

中庸之道——PyTorch  Lightning

– My Lightning adventure

了解 PyTorch Lightning 的关键组件

深度学习管道

PyTorch Lightning 抽象层

使用 PyTorch Lightning 制作 AI 应用程序

图像识别模型

迁移学习

NLP Transformer模型

Lightning Flash

使用 LSTM 的时间序列模型

具有自动编码器的生成对抗网络

结合 CNN 和 RNN 的自监督模型

用于对比学习的自我监督模型

部署和评分模型

扩展模型和生产力技巧

进一步阅读

概括


我们正在见证由人工智能AI ) 驱动的被普遍称为第四次工业革命)。自从大约 350 年前创造了蒸汽机以来,人类走上了工业化道路,我们看到了另外两次工业革命。大约 100 年前,我们看到电力带来了翻天覆地的变化,大约 50 年后,数字时代彻底改变了我们今天的生活方式。人工智能同样具有变革性的力量。我们所知道的关于世界的一切都在快速变化,并将继续以前所未有的速度发生变化,当然也没有人计划过。随着人工智能聊天机器人的出现,我们看到了我们联系客户服务的方式发生了变革;在我们如何观看电影/视频方面,AI 会推荐我们应该观看的内容;在我们的购物方式中,使用针对供应链优化的算法;使用自动驾驶技术如何驾驶汽车;通过将人工智能应用于蛋白质折叠等复杂问题来开发新药;通过在大量数据中发现隐藏模式,了解如何进行医疗诊断。支撑上述每项技术的是人工智能的力量。人工智能对我们世界的影响不仅仅是我们使用的技术;相反,它在我们如何与社会互动、我们如何工作以及我们如何生活方面更具变革性。正如许多人所说,人工智能是新的电力,为 21 世纪的引擎提供动力 在我们如何与社会互动、我们如何工作以及我们如何生活方面,它更具变革性。正如许多人所说,人工智能是新的电力,为 21 世纪的引擎提供动力 在我们如何与社会互动、我们如何工作以及我们如何生活方面,它更具变革性。正如许多人所说,人工智能是新的电力,为 21 世纪的引擎提供动力圣世纪。

人工智能对我们的生活和心理的巨大影响是该领域最近取得突破的结果深度学习( DL )。长期以来,科学家们一直梦想创造出模仿大脑的东西。大脑是一种迷人的自然进化现象。人类大脑的突触比宇宙中的星星还要多,正是这些神经连接使我们变得聪明,让我们能够做一些事情,比如思考、分析、识别物体、用逻辑推理和描述我们的理解。虽然人工神经网络ANN ) 的工作方式与生物神经元不同,但它们确实起到了启发作用。

在物种进化过程中,最早的生物是单细胞生物(如变形虫),大约在 40 亿年前首次出现,随后是小型多细胞物种,在大约 35 亿年的时间里盲目导航,没有方向感。当你周围的每个人都是盲人时,第一个发展出视力的物种通过成为最聪明的物种而比所有其他物种具有显着优势,而在进化生物学中,这一步(发生在大约 5 亿年前)被称为寒武纪大爆发. 这个单一事件导致物种进化的显着增长,导致了我们今天在地球上看到的一切。换句话说,尽管地球大约有 45 亿年的历史,但所有复杂的生命形式,包括人类大脑,都是在过去 5 亿年(仅占地球生命的 10%)中进化的,由单一进化事件主导,这反过来又导致有机体“看到”事物的能力。

事实上,在人类中,我们大脑的 1/3 与视觉皮层有关。这远远超过任何其他感官。也许通过首先掌握“视觉”能力来解释我们的大脑如何进化为最聪明的。

借助图像识别的 DL 模型,我们终于可以让机器“看到”事物(李飞飞将其描述为机器学习 (ML) 的寒武纪大爆发这一事件将使 AI 完全走上不同的轨迹,其中一个有一天它可能真的可以和人类的智慧相媲美。

2012 年,DL 模型在图像识别方面实现了接近人类的准确度,从那时起,已经创建了许多框架,使数据科学家能够轻松地训练复杂模型。创建特征工程FE) 步骤、复杂的转换、训练反馈循环和优化需要大量的手动编码。框架有助于抽象某些模块并使编码更容易以及标准化。PyTorch Lightning 不仅是最新的框架,而且可以说是在正确的抽象级别和执行复杂研究的能力之间取得完美平衡的最佳框架。它是 DL 初学者以及希望将模型产品化的专业数据科学家的理想框架。在本章中,我们将了解为什么会出现这种情况,以及我们如何利用 PyTorch Lightning 的强大功能快速轻松地构建有影响力的 AI 应用程序。

在本章中,我们将介绍以下主题:

  • 是什么让 PyTorch Lightning 如此特别?
  • <pip install> —My Lightning adventure
  • 了解 PyTorch Lightning 的关键组件
  • 使用 PyTorch Lightning 制作 AI 应用程序

是什么让 PyTorch Lightning 如此特别?

所以,如果你作为一名数据科学家新手,你脑海中的问题是:我应该从哪个 DL 框架开始?如果您对 PyTorch Lightning 感到好奇,那么您可能会问自己:为什么我要学习这个而不是其他东西?另一方面,如果您是一位已经构建 DL 模型一段时间的专家数据科学家,那么您将已经熟悉其他流行的框架,例如 TensorFlow、Keras 和 PyTorch。那么问题就变成了:如果你已经在这个领域工作,为什么要切换到一个新的框架? 当您已经知道另一种工具时,是否值得努力学习不同的东西?这些都是公平的问题,我们将在本节中尝试回答所有这些问题。

让我们从 DL 框架的简要历史开始,以确定 PyTorch Lightning 在这种情况下的适合位置。

第一个…。

第一个DL模型于 1993 年在麻省理工学院MIT ) 实验室执行由DL教父Yann LeCun设计。这是用 Lisp 编写的,不管你信不信,它甚至包含卷积层,就像现代卷积神经网络CNN ) 模型一样。图中显示的网络演示在他的神经信息处理系统NIPS ) 1989 年题为“使用反向传播网络的手写数字识别”的论文中进行了描述。

以下屏幕截图显示了此演示的摘录:

图 1.1 - Yann LeCun 在 1993 年的 MIT 手写数字识别演示

Yann LeCun 他本人在他的博客文章中详细描述了第一个模型是什么,这在以下视频中显示:https ://www.youtube.com/watch?v=FwFduRA_L6Q 。

正如您可能已经猜到的那样,用 C 语言编写整个 CNN 并不容易。他们的团队花费了多年的手动编码努力来实现这一目标。

DL 的下一个重大突破出现在 2012 年,创建了 AlexNet,赢得了 ImageNet 竞赛。Geoffrey Hinton 等人的AlexNet论文。被认为是最有影响力的论文,在社区中被引用次数最多。AlexNet 在准确性方面开创了先河,让神经网络再次酷起来,并且是一个经过训练的海量网络优化的图形处理单元GPU )。他们还引入了许多重要的东西,例如 BatchNorm、MaxPool、Dropout、SoftMax 和 ReLU,我们将在稍后的旅程中看到这些东西。由于网络架构如此复杂和庞大,很快就需要一个专门的框架来训练它们。

这么多框架?

Theano、Caffe 和 Torch可以说是帮助数据科学家创建深度学习模型的第一波深度学习框架。虽然 Lua 是某些编程语言的首选(Torch 最初是用 Lua 编写的 LuaTorch),但许多其他语言是基于 C++ 的,可以帮助在 GPU 等分布式硬件上训练模型并管理优化过程。当该领域本身是新的且不稳定时,它主要由学术界的 ML 研究人员(通常是博士后)使用。数据科学家应该知道如何使用梯度下降代码编写优化函数,并使其在特定硬件上运行,同时还能操作内存。显然,业内人士无法轻易使用它来训练模型并将其投入生产。

模型训练框架的一些示例如下所示:

图 1.2 – 模型训练框架

Google 的 TensorFlow 通过恢复为基于 Python 的抽象函数驱动框架成为该领域的游戏规则改变者,非研究人员可以使用该框架进行试验,同时保护他们免受在硬件上运行 DL 代码的复杂性。紧随其后的是 Keras,它进一步简化了深度学习,任何知识渊博的人都可以用四行代码训练一个深度学习模型。

但可以说,TensorFlow 没有很好地并行化。它也更难在分布式 GPU 环境中进行有效训练,因此社区认为需要一个新框架——某种东西它结合了基于研究的框架的强大功能和 Python 的易用性。PyTorch 诞生了!自首次亮相以来,该框架就席卷了 ML 世界。

PyTorch 与 TensorFlow

看着在 PyTorch 和 TensorFlow 竞争的 Google Trends 上,你可以说 PyTorch 在最近几年已经从 TensorFlow 手中接过,几乎已经超越了它。

摘录自谷歌趋势可以在这里看到:

图 1.3 – 谷歌趋势中 PyTorch 与 TensorFlow 的社区兴趣变化

虽然有些人可能会说 Google Trends 不是判断 ML 社区脉搏的最科学方法,但您也可以看看许多有影响力的 AI 参与者,它们工作量很大,例如 Facebook、Tesla 和 Uber,它们默认使用 PyTorch 框架管理他们的 DL 工作负载并显着节省计算和内存。

不过,在 ML 研究社区中,Tensorflow 和 PyTorch 之间的选择非常明确。获胜者是毫无疑问的 PyTorch!

图 1.4 – TensorFlow 与 PyTorch 在顶级 AI 会议上发表论文的趋势

这两个框架都会有他们的铁杆粉丝,但 PyTorch 被认为在分布式 GPU 环境中更高效,因为它具有固有的架构。以下是使 PyTorch 优于 TensorFlow 的其他一些因素:

  • 提供更高的稳定性。
  • 易于构建的扩展和包装器。
  • 更全面的领域库。
  • 静止的TensorFlow 中的图形表示并不是很有帮助。轻松地训练网络是不可行的。
  • PyTorch 中的动态张量改变了游戏规则,使其易于训练和扩展。

中庸之道——PyTorch  Lightning

我很少遇到像 PyTorch Lightning 一样令人兴奋的东西!这个框架是 William Falcon 的心血结晶,他的博士导师是(猜猜是谁)..Yann LeCun!这就是它的原因站出来:

简而言之,PyTorch Lightning 让制作 DL 模型和执行快速实验变得既有趣又酷,同时不会通过从数据科学家那里抽象出核心数据科学方面而使核心数据科学方面变得愚蠢,并且始终为深入研究 PyTorch 敞开大门你想要!

我想它通过允许更多的能力来做数据科学,同时自动化大部分“工程”部分,达到了完美的平衡。这是 TensorFlow 终结的开始吗?对于这个问题的答案,我们将不得不拭目以待。

<pip install> – My Lightning adventure

得到从 PyTorch Lightning 开始非常容易。您可以使用 Anaconda 发行版在本地设置您的环境或使用云选项例如Google Colaboratory ( Google Colab )、Amazon Web Services ( AWS )、Azure 或 IBM Watson工作室开始。(建议您使用云环境来运行一些更复杂的模型。)本书中的大部分代码都是在 Google Collab 或 Anaconda 上使用 Python 3.6 和 Mac OS 运行的。请在其他系统上对您的环境进行适当的更改以进行安装。

可以在 Jupyter 笔记本环境中使用pip安装 PyTorch Lightning,如下所示:

pip install pytorch-lightning

除了导入 PyTorch Lightning(第一个导入语句可以在以下代码片段中看到)之外,以下导入块显示通常是代码一部分的语句:

import pytorch_lightning as pl
import torch
from torch import nn
import torch.nn.functional as F
from torchvision import transforms

火炬包用于定义张量和对张量执行数学运算。torch.nn包用于构建神经网络,这就是nn的意思torch.nn.functional包含包括激活和损失函数在内的函数,而torchvision.transforms是一个单独的库,提供常见的图像转换。安装 PyTorch Lightning 框架和所有包后,您应该会看到完成日志,如以下屏幕截图所示:

图 1.5 – PyTorch Lightning 的安装结果

安装 PyTorch Lightning 后,您可以检查 PyTorch 和 Torch 的版本

图 1.6 – 验证安装

而已!现在,你们都准备好了开始你的闪电冒险!

了解 PyTorch Lightning 的关键组件

在我们跳之前在构建 DL 模型之前,让我们修改一个深度学习项目遵循的典型管道。

深度学习管道

让我们修改用于 DL 网络架构的典型 ML 管道。这是它的样子:

图 1.7 – 深度学习管道

一个深度学习管道通常涉及以下步骤。我们将继续在整本书中看到它们,将它们用于解决问题的各个方面:

  1. 定义问题
    • 设定明确的任务和预期目标。
  2. 资料准备
    • 这一步包括找到正确的数据集来解决这个问题,摄取并清理它。对于大多数 DL 项目,这涉及到数据工程师在图像、视频或文本语料库中工作以获取数据集(有时通过网页抓取),然后将它们分类为大小。
    • 大多数 DL 模型需要大量数据,而模型还需要对图像的微小变化(例如裁剪)具有弹性。为此,工程师通过创建原始图像或黑白B/W ) 版本的裁剪或反转它们等来扩充数据集。
  3. 建模
    • 这个将首先涉及 FE 并定义我们想要构建什么样的网络架构。
    • 例如,在数据科学家创建新的图像识别模型的情况下,这将涉及定义具有三层卷积的 CNN 架构,可以定义步长、滑动窗口、梯度下降优化、损失函数等。
    • 对于 ML 研究人员来说,这一步可能涉及定义新的损失函数,以更有用的方式测量准确度,或者通过使用提供相同准确度的较低密度网络的模型训练来执行一些魔法,或者定义分布良好的新梯度优化或收敛更快。
  4. 培训
  5. 部署工程

PyTorch Lightning 抽象层

PyTorch 闪电框架使构建整个 DL 模型以帮助数据科学家变得容易。这是如何实现的:

  • LightningModule类用于定义模型结构、推理逻辑、优化器和调度器细节、训练和验证逻辑等。
  • Lightning Trainer抽象出循环、硬件交互、拟合和评估模型等所需的逻辑。
  • 您可以将 PyTorch DataLoader直接传递给培训师,也可以选择定义LightningDataModule以提高可共享性和重用性。

使用 PyTorch Lightning 制作 AI 应用程序

在本书中,你将看到我们如何构建各种使用 PyTorch Lightning 轻松高效地构建各种类型的 AI 模型。借助具有行业范围应用和实际优势的动手示例,您不仅会接受 PyTorch Lightning 的培训,还会接受不同深度学习系列的整个范围的培训。

图像识别模型

我们将在第 2 章中以图像识别模型的形式创建我们的第一个 DL 模型,开始我们的旅程,开始使用第一个深度学习模型。图像识别是深度学习框架的典型身份,通过使用 PyTorch Lightning,我们将了解如何使用 CNN 构建图像分类模型。

迁移学习

深度学习模型众所周知,在收敛之前需要在大量 epoch 上进行训练,从而在此过程中消耗大量 GPU 计算能力。在第 3 章,使用预训练模型的迁移学习中,您将学习一种已知的技术作为迁移学习TL ),通过从大型预训练架构(例如用于图像分类的 ResNet-50 或用于文本分类的 BERT)中迁移知识,无需付出太多努力即可获得良好的结果。

NLP Transformer模型

我们将还可以查看自然语言处理NLP ) 模型并了解 DL 如何生成文本可以对大量文本数据进行分类。您将在第 3 章“使用预训练模型的迁移学习”中了解如何使用著名的预训练 NLP 模型,包括 Transformer,并轻松适应您的业务需求。

Lightning Flash

这DL 模型的创建还涉及相当复杂的特征工程管道过程,以及同样繁琐的训练和优化步骤。大多数数据科学家通过采用赢得 Kaggle 比赛或有影响力的研究论文的 SOTA 模型开始他们的旅程。在第 4 章,Lightning Flash 的现成模型中,您将了解 Lightning Flash 等开箱即用的实用程序如何通过为标准任务(如对象检测或文本分类)提供标准网络架构的存储库来提高生产力、音频或视频。我们将很快建立视频分类和音频文件自动语音检测的模型。

使用 LSTM 的时间序列模型

预测预测时间序列中的下一个事件是行业内的常青挑战。在第 5 章,时间序列模型中,您将了解我们如何使用具有长短期记忆LSTM ) 网络架构的递归神经网络RNN )在 PyTorch Lightning 中构建时间序列模型。

具有自动编码器的生成对抗网络

生成对抗网络GAN ) 模型是最引人入胜的方面之一DL的应用程序,并且可以创建现实生活中根本不存在的人或地点或物体的逼真图像。在第 6 章,深度生成模型中,您将学习如何使用 PyTorch Lightning,轻松制作 GAN 模型,以创建逼真的动物、食品或人的假图像。

结合 CNN 和 RNN 的自监督模型

应用程序DL 模型不仅限于使用 GAN 创建精美的假图像。我们甚至可以让机器描述电影中的场景或询问有关图像内容的信息性问题(例如图片中的人或他们在做什么)。这种模型架构被称为半监督模型并且,在第 7 章,半监督学习中,您将学习 CNN-RNN 架构(其中RNN代表递归神经网络)的混合体,可用于教机器如何编写情景诗歌。在同一章中,我们还将了解如何从头开始训练模型并使用 16 位精度和其他操作技巧来加速模型以确保顺利训练。

用于对比学习的自我监督模型

如果机器可以创建逼真的图像或编写类似人类的描述,他们不能自学吗?自我监督模型旨在让机器学习如何执行低标签或根本没有标签的复杂任务,从而彻底改变我们可以用人工智能做的一切。在第 8 章,自监督学习中,您将了解 PyTorch Lightning 如何为自监督模型提供原生支持。您将学习如何教机器执行对比学习CL),它可以纯粹通过表示学习来区分没有任何标签的图像。

部署和评分模型

每个 DL 模型可以训练有朝一日被生产化并用于在线预测的梦想。这部分 ML 工程需要数据科学家熟悉自己具有各种模型文件格式。在第 9 章,部署和评分模型中,您将学习如何在可与语言无关的可移植模型中部署和评分模型借助 Pickle 和开放式神经网络交换ONNX ) 格式,在生产环境中与硬件无关。

扩展模型和生产力技巧

最后,PyTorch Lightning 的功能不仅限于在定义的架构上创建新模型,还包括使用新的研究推进 SOTA。在第 10 章,扩展和管理培训中,我们将看到一些使此类新研究成为可能的功能,以及如何通过提供故障排除技巧和快速提示来提高生产力。我们还将关注扩展模型训练的各种方法。

进一步阅读

以下是 PyTorch Lightning 的一些链接,您发现它们非常有用:

  • 官方文档:https ://pytorch-lightning.readthedocs.io/en/latest/?_ga=2.177043429.1358501839.1635911225-879695765.1625671009 。
  • GitHub 来源:https ://github.com/PyTorchLightning/pytorch-lightning 。
  • 如果您在代码中遇到任何问题,可以通过在 GitHub 上提出问题来寻求帮助。Pytorch Lightning团队通常反应迅速:https ://github.com/PyTorchLightning/lightning-flash/issues 。
  • 您可以在 PL 社区频道上寻求帮助。PyTorch Lightning 社区正在快速发展并且非常活跃。

概括

您可能是探索深度学习领域的初学者,看看它是否适合您。您可能是一名高级学位的学生,试图在 ML 方面进行研究以完成您的论文或发表论文。或者,您可能是一位在训练 DL 模型并将其投入生产方面拥有多年经验的专家数据科学家。PyTorch Lightning 让每个人都可以在 DL 中做几乎任何事情。

它通过提供对复杂性的包装器,结合了 PyTorch 的原始功能(提供效率和严谨性)和 Python 的简单性。你可以随心所欲地做一些创新工作(正如你将在本书后面看到的那样),同时你也可以获得许多开箱即用的神经网络架构,让你不必重新发明轮子(稍后您还将了解)。它与 PyTorch 完全兼容,并且可以轻松重构代码。它也可能是第一个为数据科学家角色设计的框架,而不是其他角色,例如 ML 研究员、ML-Ops 工程师或数据工程师。

我们将从一个简单的深度学习模型开始我们的旅程,并将在每一章中继续将我们的范围扩展到更高级和更复杂的模型。你会发现它涵盖了所有著名的模型,让你拥有深度学习技能,从而对你的组织产生影响。因此,让我们在下一章中使用您的第一个 DL 模型进行下一步。

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

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

相关文章

数据中心通识

文章目录一 数据中心定义特点二 机房定义内部物品物理环境三 服务器定义外型分类与PC相比的优点超线程技术固态硬盘和机械硬盘四 网络定义OSI模型局域网的拓扑结构TCP/IP协议常见端口号IP地址介绍、格式、分类、子网掩码DNS三层交换机五 存储格式化缓存RAID技术存储体系架构IP-…

二叉树的前中后序遍历(递归与迭代)

作者&#xff1a;~小明学编程 文章专栏&#xff1a;Java数据结构 格言&#xff1a;目之所及皆为回忆&#xff0c;心之所想皆为过往 目录 简介 前序遍历 递归法 迭代法 中序遍历 递归法 迭代法 后序遍历 递归法 迭代法 简介 前面学习二叉树的时候&#xff0c;已经学过…

渗透测试 | 域名信息收集

0x00 前言 信息收集可以说是在渗透测试中最重要的一部分&#xff0c;上文对 IP 信息收集做了一个简要的叙述&#xff0c;认识了 CDN 技术和网络空间搜索引擎。但是很多网站的主站因为访问流量过大的原因通常会使用 CDN 技术&#xff0c;同时也可以有效防止 DDOS 攻击。在域名信…

前端面经 强缓存与协商缓存

前端面经 强缓存与协商缓存 图片多来自第三方平台 文章目录前端面经 强缓存与协商缓存适用场合浏览器缓存的过程缓存规则强缓存&#xff08;本地缓存&#xff09;协商缓存缓存分为两种&#xff1a;强缓存和协商缓存&#xff0c;根据响应的header内容来决定 获取资源形式状态码…

【C++】二叉搜索树

前言 hi~大家好呀&#xff0c;欢迎点进我的C学习笔记~ 我的前一篇C笔记链接~ 【C】多态_柒海啦的博客-CSDN博客 本篇需要用到的基础二叉树C语言实现链接~ 用c语言实现一个简单的链表二叉树_柒海啦的博客-CSDN博客_c语言建立二叉树链表 我们知道&#xff0c;查找一个数据会有很多…

数据库基本操作

目录 数据库操作 创建数据库 查看数据库 选择数据库 删除数据库 注释 数据表操作 创建数据表 查看数据表 查看数据表 查看数据表的相关信息 修改数据表 修改数据表名称 修改表选项 查看表结构 查看数据表的字段信息 查看数据表的创建信息 查看数据表结构 修…

linux进程间通信之共享内存

目录 一&#xff0c;共享内存原理 二&#xff0c;创建共享内存 1&#xff0c;shmget创建共享内存 2&#xff0c;shmat挂接共享内存 3&#xff0c;shmdt取消挂接共享内存 4&#xff0c;shmctl删除共享内存 三&#xff0c;代码使用 1,com.hpp 2&#xff0c;ipc_client.c…

Allegro基本规则设置指导书之Physical Region

Allegro基本规则设置指导书之Physical Region 下面介绍基本规则设置指导书之Physical Region 空白的地方创建一个Region 给新建的Region匹配一个规则,所有区域里面的Physical相关的都按照Region的规则来 当部分网络想按照本身的规则来匹配,可以创建region-Class 然后匹配…

目标检测算法——医学图像开源数据集汇总(附下载链接)

关注”PandaCVer“公众号 深度学习Tricks&#xff0c;第一时间送达 目录 1.血细胞图像数据 2.眼病深度学习数据集 3.皮肤病数据集 4.膝关节 X 射线图像数据集 小海带整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01; >>>一起交流…

VisualSVN 是 Visual Studio 的专业级 Subversion 集成插件

用于 Visual Studio 的 VisualSVN 专业且无缝的 Subversion 集成。 专业级 Subversion 集成 VisualSVN 是 Visual Studio 的专业级 Subversion 集成插件。 VisualSVN 的主要优点是&#xff1a; 无与伦比的可靠性&#xff1a; Visual Studio 永远不会因为 VisualSVN 而崩溃或挂…

保护鲸鱼动物网页设计作业 静态HTML宠物主题网页作业 DW鲸鱼网站模板下载 大学生简单动物网页作品代码 个人网页制作 学生个人网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

2022阿里云栖大会,顶尖科技趋势峰会和全链路元宇宙体验

2022年的11月3日-5日是阿里巴巴云栖大会的日子&#xff0c;地点在云栖小镇&#xff0c;本人有幸报名参加了5日那场&#xff0c;因为5日是周六。秉着打工人工作日需要搬砖&#xff0c;因为“公司离不开我”&#xff0c;哈哈哈&#xff0c;实际上是每天满满的工作量。所以只能选择…

一文彻底搞懂协程(coroutine)是什么,值得收藏

什么是协程 我们可以简单的认为&#xff1a;协程就是用户态的线程&#xff0c;但是上下文切换的时机是靠调用方&#xff08;写代码的开发人员&#xff09;自身去控制的。 同时&#xff0c;协程和用户态线程非常接近&#xff0c;用户态线程之间的切换不需要陷入内核&#xff0…

NYIST(计科ACMTC)第三次招新赛题解

A题 原文, 原比赛B题 牛客练习赛104【出题人题解】 - 知乎 直接输出 输入的数 就可以了 B题 C题 找到分别处理"无留陀的化身"坐标轴的x轴和y轴, 组合成无留陀的坐标, 再遍历求纳西妲的坐标, 相减即可 /* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿…

ROS小工具学习与使用

ROS小工具学习与使用 rqt的使用 rqt_bag工具 rqt_bag <your bagfile> #使用rqt_bag查看你的rosbag例如&#xff1a;可以查看第一帧GPS的rawdata信息&#xff0c;如下图&#xff1a; 参考文献&#xff1a; 1、http://wiki.ros.org/rqt_bag 2、rosbag与rqt_bag的常用 rq…

Nacos学习笔记

视频学习指路&#xff1a; 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 Nacos nacos注册中心的搭建 1.下载nacos的安装包&#xff0c;github地址&#xff1a;https://github.com/alibaba/nacos&…

Tkinter保姆级教程(上)

目录 什么是GUI Tkinter用法详解 第一个Tkinter程序 常用控件和属性 主窗口 Label标签控件 Button按钮控件 Entry输入控件 基本属性 Text 文本控件 列表框(ListBox)和组合框(Combobox) 单选框(Radiobutton)和多选框按钮(Checkbutton) 什么是GUI 图形用户界面&#x…

运算放大器正反馈负反馈判别法

---------------------------------------------------------------------------------------------------------------- 反馈可分为负反馈和正反馈。前者使输出起到与输入相反的作用&#xff0c;使系统输出与系统目标的误差减小&#xff0c;系统趋于稳定&#xff1b;后者使输出…

java面向对象(上)

一、java面向对象学习的三条主线1.java类以及类的成员&#xff1a;属性、方法、构造器&#xff1b;代码块、内部类。2.面向对象的三大特征&#xff1a;封装性&#xff0c;继承性&#xff0c;多态性&#xff0c;&#xff08;抽象性&#xff09;。3.其他关键字&#xff1a;this&a…

.net技术第一章

文章目录.NETC# (C Sharp)的特点C# 的应用范围.NET Framework1.2 创建简单的C#程序结构和书写规则类型的声明和使用类型的声明和使用命名空间使用方法命名空间举例注释Main方法命令行参数Main返回值控制台输入和输出例子格式化.NET 由微软公司提供的免费、跨平台的开源通用开发…