physicsnemo開源程序是開源深度學習框架,用于使用最先進的 Physics-ML 方法構建、訓練和微調深度學習模型

?一、軟件介紹

文末提供程序和源碼下載

? ? ?NVIDIA PhysicsNeMo 是一個開源深度學習框架,用于使用最先進的 SciML 方法構建、訓練、微調和推理物理 AI 模型,以實現 AI4 科學和工程。PhysicsNeMo 提供 python 模塊來構建可擴展和優化的訓練和推理管道,以探索、開發、驗證和部署將物理知識與數據相結合的 AI 模型,從而實現實時預測。無論您是在探索使用神經運算符、GNN 或轉換器,還是對物理信息神經網絡或兩者之間的混合方法感興趣,PhysicsNeMo 都為您提供了一個優化的堆棧,使您能夠大規模訓練模型。

二、更多關于 PhysicsNeMo

At a granular level, PhysicsNeMo is developed as modular functionality and therefore provides built-in composable modules that are packaged into few key components:
在細粒度層面上,PhysicsNeMo 是作為模塊化功能開發的,因此提供了內置的可組合模塊,這些模塊被打包成幾個關鍵組件:

Component?元件Description?描述
physicsnemo.modelsA collection of optimized, customizable, and easy-to-use families of model architectures such as Neural Operators, Graph Neural Networks, Diffusion models, Transformer models and many more
一系列經過優化、可自定義且易于使用的模型架構,例如 Neural Operators、Graph Neural Networks、Diffusion models、Transformer 模型等等
physicsnemo.datapipesOptimized and scalable built-in data pipelines fine tuned to handle engineering and scientific data structures like point clouds, meshes etc
經過優化和可擴展的內置數據管道,經過微調,可處理工程和科學數據結構,如點云、網格等
physicsnemo.distributedA distributed computing sub-module built on top of?torch.distributed?to enable parallel training with just a few steps
基于 之上構建的分布式計算子模塊?torch.distributed?,只需幾步即可實現并行訓練
physicsnemo.curator?物理nemo.curatorA sub-module to streamline and accelerate the data curation for engineering and scientific datasets for training and inference. (coming soon)
一個子模塊,用于簡化和加速用于訓練和推理的工程和科學數據集的數據管理。(即將推出)
physicsnemo.sym.geometryA sub-module to handle geometry for DL training using the Constructive Solid Geometry modeling and CAD files in STL format.
一個子模塊,用于使用構造實體幾何建模和 STL 格式的 CAD 文件處理 DL 訓練的幾何圖形。
physicsnemo.sym.eq?physicsnemo.sym.eq 中A sub-module to use PDEs in your DL training with several implementations of commonly observed equations and easy ways for customization.
在 DL 訓練中使用 PDE 的子模塊,其中包含常見方程的多種實現和簡單的自定義方法。

三、AI4Science Library?AI4Science 圖書館

Usually, PhysicsNeMo is used either as:
通常,PhysicsNeMo 用作:

  • A complementary tool to Pytorch when exploring AI for SciML and AI4Science applications.
    在探索 SciML 和 AI4Science 應用程序的 AI 時,它是 Pytorch 的補充工具。
  • A deep learning research platform that provides scale and optimal performance on NVIDIA GPUs.
    一個深度學習研究平臺,可在 NVIDIA GPU 上提供擴展和最佳性能。

Domain Specific Packages?特定于域的軟件包

The following are packages dedicated for domain experts of specific communities catering to their unique exploration needs.
以下是專供特定社區的領域專家使用的軟件包,可滿足其獨特的探索需求。

  • PhysicsNeMo CFD: Inference sub-module of PhysicsNeMo to enable CFD domain experts to explore, experiment and validate using pretrained AI models for CFD use cases.
    PhysicsNeMo CFD:PhysicsNeMo 的推理子模塊,使 CFD 領域專家能夠使用預訓練的 AI 模型進行 CFD 用例的探索、實驗和驗證。
  • Earth-2 Studio: Inference sub-module of PhysicsNeMo to enable climate researchers and scientists to explore and experiment with pretrained AI models for weather and climate.
    Earth-2 Studio:PhysicsNeMo 的推理子模塊,使氣候研究人員和科學家能夠探索和試驗預先訓練的天氣和氣候 AI 模型。

Elaborating Further:?進一步闡述:

四、Scalable GPU-optimized training Library可擴展的 GPU 優化訓練庫

PhysicsNeMo 提供了一個高度優化和可擴展的訓練庫,以最大限度地發揮 NVIDIA GPU 的功能。分布式計算實用程序允許通過幾行代碼從單個 GPU 高效擴展到多節點 GPU 集群,從而確保大規模。可以快速有效地訓練基于物理的機器學習 (ML) 模型。該框架包括對 advanced.優化實用程序、量身定制的 DataPipes、驗證實用程序,以提高端到端訓練速度。

A suite of Physics Informed ML Models
一套基于物理學的 ML 模型

PhysicsNeMo offers a library of state-of-the-art models specifically designed for physics-ML applications. Users can build any model architecture using the underlying PyTorch layers and combine with curated PhysicsNeMo layers.
PhysicsNeMo 提供了一個專為物理 ML 應用程序設計的最先進模型庫。用戶可以使用底層 PyTorch 層構建任何模型架構,并與精選的 PhysicsNeMo 層相結合。

The?Model Zoo?includes optimized implementation of family of model architectures such as Neural Operators:
Model Zoo 包括一系列模型架構的優化實現,例如 Neural Operators:

  • Fourier Neural Operators (FNOs)傅里葉神經運算符 (FNO)
  • DeepONet?深度網絡
  • DoMINO?骨牌
  • Graph Neural Networks (GNNs)圖形神經網絡 (GNN)
  • MeshGraphNet?MeshGraphNet 網格
  • MeshGraphNet for Lagrangian用于拉格朗日的 MeshGraphNet
  • XAeroNet?XAeroNet 公司
  • Diffusion Models?擴散模型
  • Correction Diffusion Model校正擴散模型
  • DDPM
  • PhysicsNeMo GraphCast?物理 NeMo GraphCast
  • Transsolver?Transsolver (轉譯器)
  • RNNs?循環神經網絡
  • SwinVRNN?斯溫VRNN
  • Physics-Informed Neural Networks (PINNs)物理信息神經網絡 (PINN)

And many others.?還有許多其他人。

These models are optimized for various physics domains, such as computational fluid dynamics, structural mechanics, and electromagnetics. Users can download, customize, and build upon these models to suit their specific needs, significantly reducing the time required to develop high-fidelity simulations.
這些模型針對各種物理場域進行了優化,例如計算流體動力學、結構力學和電磁學。用戶可以下載、自定義和構建這些模型以滿足他們的特定需求,從而顯著減少開發高保真仿真所需的時間。

Seamless PyTorch Integration
無縫 PyTorch 集成

PhysicsNeMo is built on top of PyTorch, providing a familiar and user-friendly experience for those already proficient with PyTorch. This includes a simple Python interface and modular design, making it easy to use PhysicsNeMo with existing PyTorch workflows. Users can leverage the extensive PyTorch ecosystem, including its libraries and tools while benefiting from PhysicsNeMo's specialized capabilities for physics-ML. This seamless integration ensures users can quickly adopt PhysicsNeMo without a steep learning curve.
PhysicsNeMo 構建在 PyTorch 之上,為已經精通 PyTorch 的用戶提供了熟悉且用戶友好的體驗。這包括簡單的 Python 接口和模塊化設計,可以輕松地將 PhysicsNeMo 與現有的 PyTorch 工作流一起使用。用戶可以利用廣泛的 PyTorch 生態系統,包括其庫和工具,同時受益于 PhysicsNeMo 的物理 ML 專業功能。這種無縫集成確保用戶可以快速采用 PhysicsNeMo,而無需陡峭的學習曲線。

Easy Customization and Extension
輕松定制和擴展

PhysicsNeMo is designed to be highly extensible, allowing users to add new functionality with minimal effort. The framework provides Pythonic APIs for defining new physics models, geometries, and constraints, making it easy to extend its capabilities to new use cases. The adaptability of PhysicsNeMo is further enhanced by key features such as?ONNX support?for flexible model deployment, robust?logging utilities?for streamlined error handling, and efficient?checkpointing?to simplify model loading and saving.
PhysicsNeMo 被設計為高度可擴展,允許用戶以最少的工作量添加新功能。該框架提供了用于定義新物理模型、幾何圖形和約束的 Pythonic API,使其功能可以輕松地擴展到新的使用案例。PhysicsNeMo 的適應性通過關鍵功能得到進一步增強,例如對靈活模型部署的 ONNX 支持、用于簡化錯誤處理的強大日志記錄實用程序以及用于簡化模型加載和保存的高效檢查點。

This extensibility ensures that PhysicsNeMo can adapt to the evolving needs of researchers and engineers, facilitating the development of innovative solutions in the field of physics-ML.
這種可擴展性確保 PhysicsNeMo 能夠適應研究人員和工程師不斷變化的需求,從而促進物理 ML 領域創新解決方案的開發。

Detailed information on features and capabilities can be found in the?PhysicsNeMo documentation.
有關特性和功能的詳細信息,請參閱 PhysicsNeMo 文檔。

Reference samples?cover a broad spectrum of physics-constrained and data-driven workflows to suit the diversity of use cases in the science and engineering disciplines.
參考示例涵蓋了廣泛的物理約束和數據驅動型工作流程,以適應科學和工程學科中的各種用例。

Tip?提示

Have questions about how PhysicsNeMo can assist you? Try our [Experimental] chatbot,?PhysicsNeMo Guide, for answers.
對 PhysicsNeMo 如何為您提供幫助有疑問?試試我們的 [實驗] 聊天機器人 PhysicsNeMo Guide 來尋找答案。

Hello world?世界您好

You can start using PhysicsNeMo in your PyTorch code as simple as shown here:
您可以在 PyTorch 代碼中開始使用 PhysicsNeMo,如下所示:

python
>>> import torch
>>> from physicsnemo.models.mlp.fully_connected import FullyConnected
>>> model = FullyConnected(in_features=32, out_features=64)
>>> input = torch.randn(128, 32)
>>> output = model(input)
>>> output.shape
torch.Size([128, 64])

To use the distributed module, you can do the following (Example for distributed data parallel training. For a more in-depth tutorial refer?PhysicsNeMo Distributed):
要使用分布式模塊,您可以執行以下作(分布式數據并行訓練示例。有關更深入的教程,請參閱 PhysicsNeMo Distributed):

import torch
from torch.nn.parallel import DistributedDataParallel
from physicsnemo.distributed import DistributedManager
from physicsnemo.models.mlp.fully_connected import FullyConnecteddef main():DistributedManager.initialize()dist = DistributedManager()arch = FullyConnected(in_features=32, out_features=64).to(dist.device)if dist.distributed:ddps = torch.cuda.Stream()with torch.cuda.stream(ddps):arch = DistributedDataParallel(arch,device_ids=[dist.local_rank],output_device=dist.device,broadcast_buffers=dist.broadcast_buffers,find_unused_parameters=dist.find_unused_parameters,)torch.cuda.current_stream().wait_stream(ddps)# Set up the optimizeroptimizer = torch.optim.Adam(arch.parameters(),lr=0.001,)def training_step(input, target):pred = arch(invar)loss = torch.sum(torch.pow(pred - target, 2))loss.backward()optimizer.step()return loss# Sample training loopfor i in range(20):# Random inputs and targets for simplicityinput = torch.randn(128, 32, device=dist.device)target = torch.randn(128, 64, device=dist.device)# Training steploss = training_step(input, target)if __name__ == "__main__":main()

To use the PDE module, you can do the following:
要使用 PDE 模塊,您可以執行以下作:

>>> from physicsnemo.sym.eq.pdes.navier_stokes import NavierStokes
>>> ns = NavierStokes(nu=0.01, rho=1, dim=2)
>>> ns.pprint()
continuity: u__x + v__y
momentum_x: u*u__x + v*u__y + p__x + u__t - 0.01*u__x__x - 0.01*u__y__y
momentum_y: u*v__x + v*v__y + p__y + v__t - 0.01*v__x__x - 0.01*v__y__y

Who is using and contributing to PhysicsNeMo
誰在使用 PhysicsNeMo 并為 PhysicsNeMo 做出貢獻

PhysicsNeMo is an open source project and gets contributions from researchers in the SciML and AI4science fields. While PhysicsNeMo team works on optimizing the underlying SW stack, the community collaborates and contributes model architectures, datasets, and reference applications so we can innovate in the pursuit of developing generalizable model architectures and algorithms.
PhysicsNeMo 是一個開源項目,得到了 SciML 和 AI4science 領域研究人員的貢獻。當 PhysicsNeMo 團隊致力于優化底層軟件堆棧時,社區協作并貢獻模型架構、數據集和參考應用程序,以便我們可以在開發通用模型架構和算法的過程中進行創新。

Some latest examples of community contributors are?HP Labs 3D Printing team,?Stanford Cardiovascular research team,?UIUC team,?CMU team?etc.
社區貢獻者的一些最新示例包括 HP Labs 3D 打印團隊、斯坦福心血管研究團隊、UIUC 團隊、CMU 團隊等。

Latest examples of research teams using PhysicsNeMo are?ORNL team,?TU Munich CFD team?etc.
使用 PhysicsNeMo 的研究團隊的最新示例是 ORNL 團隊、TU Munich CFD 團隊等。

Please navigate to this page for a complete list of research work leveraging PhysicsNeMo. For a list of enterprises using PhysicsNeMo refer?PhysicsNeMo Webpage.
請導航到此頁面以獲取利用 PhysicsNeMo 的研究工作的完整列表。有關使用 PhysicsNeMo 的企業列表,請參閱 PhysicsNeMo 網頁。

Using PhysicsNeMo and interested in showcasing your work on?NVIDIA Blogs? Fill out this?proposal form?and we will get back to you!
使用 PhysicsNeMo 并有興趣在 NVIDIA 博客上展示您的作品?請填寫此提案表,我們會盡快回復您!

Why are they using PhysicsNeMo
他們為什么使用 PhysicsNeMo

Here are some of the key benefits of PhysicsNeMo for SciML model development:
以下是 PhysicsNeMo 用于 SciML 模型開發的一些主要優勢:

四、Installation?安裝

以下說明可幫助您安裝基本 PhysicsNeMo 模塊以開始使用。對于特定模型,還有其他可選依賴項,這些依賴項列在 optional dependencies 下。訓練配方未打包到 pip 輪或容器中,以保持較低的占用空間。我們建議用戶克隆適當的訓練配方并將其用作起點。這些訓練配方可能需要特定于使用案例的其他依賴項,并且它們附帶要求文件。

PyPi

The recommended method for installing the latest version of PhysicsNeMo is using PyPi:
安裝最新版本的 PhysicsNeMo 的推薦方法是使用 PyPi:

pip install nvidia-physicsnemo

The installation can be verified by running the?hello world?example.
可以通過運行 hello world 示例來驗證安裝。

Optional dependencies?可選依賴項

PhysicsNeMo has many optional dependencies that are used in specific components. When using pip, all dependencies used in PhysicsNeMo can be installed with?pip install nvidia-physicsnemo[all]. If you are developing PhysicsNeMo, developer dependencies can be installed using?pip install nvidia-physicsnemo[dev]. Otherwise, additional dependencies can be installed on a case by case basis. Detailed information on installing the optional dependencies can be found in the?Getting Started Guide.
PhysicsNeMo 有許多用于特定組件的可選依賴項。使用 pip 時,PhysicsNeMo 中使用的所有依賴項都可以使用?pip install nvidia-physicsnemo[all]?.如果您正在開發 PhysicsNeMo,則可以使用?pip install nvidia-physicsnemo[dev]?.否則,可以根據具體情況安裝其他依賴項。有關安裝可選依賴項的詳細信息,請參閱入門指南。

NVCR Container?NVCR 容器

The recommended PhysicsNeMo docker image can be pulled from the?NVIDIA Container Registry?(refer to the NGC registry for the latest tag):
推薦的 PhysicsNeMo docker 鏡像可以從 NVIDIA 容器注冊表中提取(請參閱 NGC 注冊表以獲取最新標簽):

docker pull nvcr.io/nvidia/physicsnemo/physicsnemo:25.03

Inside the container, you can clone the PhysicsNeMo git repositories and get started with the examples. The below command shows the instructions to launch the physicsnemo container and run examples from this repo.
在容器內,您可以克隆 PhysicsNeMo git 存儲庫并開始執行示例。以下命令顯示了啟動 physicsnemo 容器并運行此存儲庫中的示例的說明。

docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia \
--rm -it nvcr.io/nvidia/physicsnemo/physicsnemo:25.03 bash
git clone https://github.com/NVIDIA/physicsnemo.git
cd physicsnemo/examples/cfd/darcy_fno/
pip install warp-lang # install NVIDIA Warp to run the darcy example
python train_fno_darcy.py

For enterprise supported NVAIE container, refer?PhysicsNeMo Secured Feature Branch
有關企業支持的 NVAIE 容器,請參閱 PhysicsNeMo 安全功能分支

From Source?從源

Package?包

For a local build of the PhysicsNeMo Python package from source use:
對于來自源的 PhysicsNeMo Python 包的本地構建,請使用:

git clone git@github.com:NVIDIA/physicsnemo.git && cd physicsnemopip install --upgrade pip
pip install .

Source Container?源容器

To build PhysicsNeMo docker image:
要構建 PhysicsNeMo docker 鏡像:

docker build -t physicsnemo:deploy \--build-arg TARGETPLATFORM=linux/amd64 --target deploy -f Dockerfile .

Alternatively, you can run?make container-deploy
或者,您也可以運行?make container-deploy

To build CI image:
要構建 CI 映像:

docker build -t physicsnemo:ci \--build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile .

Alternatively, you can run?make container-ci.
或者,您也可以運行?make container-ci?.

Currently, only?linux/amd64?and?linux/arm64?platforms are supported. If using?linux/arm64, some dependencies like?warp-lang?might not install correctly.
目前,僅支持?linux/amd64?和 平臺?linux/arm64?。如果使用?linux/arm64?,某些依賴項(如?warp-lang?)可能無法正確安裝。

五、軟件下載

夸克網盤分享

本文信息來源于GitHub作者地址:?https://github.com/NVIDIA/physicsnemo

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86831.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86831.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86831.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JDBC接口開發指南

1.簡介 JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具…

Shell 腳本:系統管理與任務自動化的利器

在開發者忙碌的日常工作中,效率就是生命線。當面對大量重復、繁瑣的系統管理任務與開發流程時,一款得力的編程工具能讓工作事半功倍。Shell 腳本,這把在 Linux 和 Unix 系統環境下閃耀著光芒的利器,憑借其強大的自動化能力&#x…

關于mybatis插入大批量數據效率問題

一、即便分批次用mybatis插入數據,效率依舊不高,原因: MyBatis一次性批量插入幾千條數據,為什么性能很差?-騰訊云開發者社區-騰訊云 文中提出: 默認執行器類型為Simple,會為每個語句創建一個新…

在 JavaScript中編寫 Appium 測試(入門)

1.編寫一個測試 (JS) 要在 JavaScript(Node.js)中編寫 Appium 測試,我們需要選擇一個與 Appium 兼容的客戶端 庫。維護最好的庫和 Appium 團隊推薦使用的庫是 WebdriverIO, 所有就讓我們使用它吧。既然我們已經安裝了 Appium,我們…

【android bluetooth 框架分析 04】【bt-framework 層詳解 6】【Properties介紹】

DeviceProperties、AdapterProperties、StorageModule、以及 bt_config.conf 是 AOSP Bluetooth 棧中 設備屬性管理與持久化系統 的核心組成部分,它們之間關系緊密,但職責各有不同。 下面我將依次講解它們的區別與聯系. 注意: 在代碼里面 還有 Blueto…

@Resource vs @Autowired 在Spring中的使用和區別

Resource vs Autowired 在Spring中的使用和區別 在Spring開發中,我們常會接觸兩個用于實現引用模塊注入的注解:Resource 和 Autowired。它們在使用上有些相似之處,但本質上來看,有所區別。本文將給出兩者的詳細介紹和對比&#x…

Mac M4 芯片運行大模型指南,包括模型微調與推理

Mac M4 芯片運行大模型指南,模型微調與推理 背景模型推理 Ollama🔍 舉例說明:踩坑 模型微調 unsloth 背景 在國補、教育優惠、京東會員500優惠券等眾多優惠之下。 我拿下了Macmini M4 16G 內存萬兆網卡。在機器到手的第一時間,馬…

微信小程序中安裝vant

以下是微信小程序中安裝 Vant 的詳細步驟: 1. 初始化項目 在微信小程序項目目錄下,打開終端,執行以下命令進行項目初始化: npm init -y該命令會快速生成一個默認的package.json文件,-y參數表示直接使用默認配置&…

今天做的力扣SQL

我本地markdown的東西直接復制出來了。 多說一嘴,今天早上六點醒了,然后被外面吵,心里也擔心找實習就一直睡不著了。索性直接來實驗室,這一上午感覺好快啊。幸運的是,自己也沒有浪費時間,還行吧。SQL欠的賬…

【開發常用命令】:docker常用命令

docker常用命令 基礎命令 # 啟動docker systemctl start docker # 關閉docker systemctl stop docker # 重啟docker systemctl restart docker # 設置開機自啟動 systemctl enable docker # 查看docker運行狀態 systemctl status docker # 查看docker版本號信息 docker versi…

安裝配置以太鏈錢包工具

安裝go語言環境 1、官網下載go安裝包并上傳到指定機器 https://golang.google.cn/dl/ 2、解壓縮至指定位置: tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz 3、將 /usr/local/go/bin 目錄添加至 PATH 環境變量: export PATH$PATH:/usr/local/g…

論文閱讀:speculative decoding

Fast Inference from Transformers via Speculative Decoding 論文地址:https://arxiv.org/pdf/2211.17192 speculative sampling 為了從分布 p ( x ) p(x) p(x) 中采樣,我們實際上是從分布 q ( x ) q(x) q(x) 中采樣 x x x,如果 q ( …

java操作word里的表格

依賴&#xff1a; <dependency><groupId>com.techCoLtd</groupId><artifactId>aspose-words-16.4.0-jdk16</artifactId><classifier>jdk16</classifier> </dependency>/*** 刪除表格及表格的行* throws Exception*/ private s…

單鏈表經典算法題之分割鏈表

給定一個頭結點和一個值x&#xff0c;是鏈表中所有小于x的值都在x前面 typedef struct ListNode ListNode; struct ListNode* partition(struct ListNode* head, int x) { //思路一&#xff1a;在原鏈表上進行修改 //思路二&#xff1a;創建新鏈表&#xff0c;使用哨兵位&…

Modbus TCP轉DeviceNet網關連接ABB變頻器配置案例

某工廠需要將支持Modbus TCP協議的上位機控制系統&#xff08;如PLC或SCADA&#xff09;與支持DeviceNet協議的變頻器&#xff08;如ABB ACS880、施耐德ATV320等&#xff09;進行通信。為實現協議轉換&#xff0c;采用開疆智能Modbus TCP轉DeviceNet網關KJ-DVCZ-MTCPS作為中間設…

【力扣 簡單 C++】206. 反轉鏈表

目錄 題目 解法一&#xff1a;迭代 解法二&#xff1a;遞歸 題目 待添加 解法一&#xff1a;迭代 class Solution { private:ListNode* reverse(ListNode* head){ListNode* newHead {};while (head){ListNode* nextNode {head->next};head->next newHead;newHead …

計算機視覺之三維重建(深入淺出SfM與SLAM核心算法)—— 1. 攝像機幾何

文章目錄 1. 針孔相機1.1. 針孔成像1.2. 光圈對成像的影響 2. 透視投影相機2.1. 透鏡成像2.2. 失焦2.3. 徑向畸變2.4. 透視投影的性質 3. 世界坐標系到像素坐標系的變換4. 其它相機模型4.1. 弱透視投影攝像機4.2. 正交投影攝像機4.3. 各種攝像機模型的應用場合 課程視頻鏈接&am…

第十三節:第七部分:Stream流的中間方法、Stream流的終結方法

Stream流常見的中間方法 Stream流常見的終結方法 代碼 學生類&#xff08;代碼一與代碼二共涉及到的類&#xff09; package com.itheima.day28_Stream;import java.util.Objects;public class Student implements Comparable<Student> {private String name;private i…

深入理解 Go 中的字節序(Endianness)檢測代碼

深入理解 Go 中的字節序&#xff08;大小端&#xff09;檢測代碼 在計算機系統中&#xff0c;字節序&#xff08;Endianness&#xff09; 是指多字節數據類型&#xff08;如 int16、int32 等&#xff09;在內存中的存儲順序。Go 語言標準庫提供了對大端&#xff08;Big-endian&…

JAVA:RabbitMQ 消息持久化機制的技術指南

?? 1、簡述 在使用 RabbitMQ 構建可靠消息系統時,消息丟失是必須避免的問題。為此,RabbitMQ 提供了消息持久化機制(Message Durability),可以保障在 Broker 異常宕機后數據不會丟失。 本篇博客將從原理出發,結合 Spring Boot 實戰講解如何正確實現 RabbitMQ 消息持久…