大家好,
雖然這個問題主要是針對 JMP 員工的,但其他使用者也可能掌握更多資訊。
我很好奇JMP是否計劃在其神經網路建模平台中實現任何基於物理資訊的神經網路(PINN)。身為物理學家(在工業界而非學術界),我分析的大量資料都存在著難以在標準JMP資料表中體現的潛在物理約束。儘管我很欣賞JMP在其預測建模平台(例如XGBoost或NN)以及PyTorch插件方面所付出的努力,但在對資料進行建模時,提取物理驅動因素/限制因素往往很困難。當然,在理想情況下,我可以產生自己的公式來對資料進行建模,但在現實世界中,回應並非由諧振子控制,情況要複雜得多,我們也沒有現成的模型公式可以使用。
如果能加入一些基於物理學原理的選項,在模型中加入懲罰因子,那就太好了。這樣,如果違反了基本的物理定律,相應的路徑就會受到懲罰,反之亦然。更好的是,可以加入多個基於物理學原理的懲罰因子。統計數據固然重要,但幾乎所有資料集都遵循著某些物理定律。
只是好奇而已。
謝謝! ,
DS
這是 Python 集成為 JMP 18 及更高版本帶來的強大功能之一:您可以根據自身需求自訂 JMP 的功能。您可以實現完全符合您需求的解決方案。快速搜尋“用於 PINN 物理資訊神經網路的 Python 套件”,即可找到以下結果:
最受歡迎、最全面的用於建立實體資訊神經網路 (PINN) 的 Python 套件分為兩類:
專用的高階 PINN 函式庫和底層核心深度學習框架.
如果您想要一個開箱即用的解決方案,其中包含已建構好的幾何工具、邊界條件和偏微分方程求解器,請使用像
DeepXDE這樣的高階函式庫。如果您想要完全自訂並最大程度地控制底層數學,請使用像
PyTorch或
JAX這樣的核心框架來建立您的 PINN。
[ 1 , 2 , 3 , 4 , 5 ]
這些特定領域的函式庫內建了用於產生時空幾何圖形、邊界/初始值條件以及專用最佳化器(如 L-BFGS)的例程。
[ 1 ]
- DeepXDE :應用最廣泛、功能最全面的科學機器學習架構。它支援複雜的多維幾何形狀、自訂邊界條件,並能輕鬆處理正向/反向問題。它可在 PyTorch、TensorFlow、JAX 或 PaddlePaddle 後端上運作。[ 1 , 2 , 3 , 4 , 5 ]
- Modulus(NVIDIA 出品) :一款高性能企業級框架,專為工業物理模擬而最佳化。它將 PINN 與傳統實體工作流程無縫集成,並利用 GPU 加速實現大規模運算。[ 1 , 2 , 3 ]
- 科學年 :一個基於 Keras 和 TensorFlow 建立的封裝庫,專門用於物理資訊深度學習、科學計算和資料驅動的偏微分方程反演。[ 1 ]
- 精靈 :一個高度靈活、模組化且快速的基於 JAX 的函式庫,專門用於處理逆問題、元建模和基於梯度的最佳化,並利用 Optax 生態系統。[ 1 ]
- PinnDE :一個統一的開源函式庫,旨在處理傳統的 PINN 架構和深度算子網路 (DeepONets),以解決複雜的微分方程組。[ 1 , 2 ]
或直接使用 PyTorch 或其他底層函式庫來建立一些東西。
在 JMP 環境中安裝 DeepXDE 只需開啟一個 Python 腳本視窗即可。
import jmp
from jmputils import pip
jpip('install', 'DeepXDE')
然後執行該腳本來安裝 DeepXDE 及其相依性。
它會安裝很多 Python 套件。
/*:
Collecting DeepXDE
Downloading deepxde-1.15.0-py3-none-any.whl.metadata (12 kB)
Collecting matplotlib (from DeepXDE)
Downloading matplotlib-3.11.1-cp314-cp314-macosx_11_0_arm64.whl.metadata (80 kB)
Requirement already satisfied: numpy in /Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages (from DeepXDE) (2.5.0)
Collecting scikit-learn (from DeepXDE)
Downloading scikit_learn-1.9.0-cp314-cp314-macosx_12_0_arm64.whl.metadata (11 kB)
Collecting scikit-optimize>=0.10.2 (from DeepXDE)
Downloading scikit_optimize-0.10.2-py2.py3-none-any.whl.metadata (9.7 kB)
Collecting scipy (from DeepXDE)
Downloading scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl.metadata (62 kB)
Collecting joblib>=0.11 (from scikit-optimize>=0.10.2->DeepXDE)
Downloading joblib-1.5.3-py3-none-any.whl.metadata (5.5 kB)
Collecting pyaml>=16.9 (from scikit-optimize>=0.10.2->DeepXDE)
Downloading pyaml-26.7.0-py3-none-any.whl.metadata (12 kB)
Collecting packaging>=21.3 (from scikit-optimize>=0.10.2->DeepXDE)
Downloading packaging-26.3-py3-none-any.whl.metadata (3.5 kB)
Collecting PyYAML (from pyaml>=16.9->scikit-optimize>=0.10.2->DeepXDE)
Downloading pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (2.4 kB)
Collecting narwhals>=2.0.1 (from scikit-learn->DeepXDE)
Downloading narwhals-2.24.0-py3-none-any.whl.metadata (15 kB)
Collecting threadpoolctl>=3.5.0 (from scikit-learn->DeepXDE)
Downloading threadpoolctl-3.6.0-py3-none-any.whl.metadata (13 kB)
Collecting contourpy>=1.0.1 (from matplotlib->DeepXDE)
Downloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (5.5 kB)
Collecting cycler>=0.10 (from matplotlib->DeepXDE)
Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.28.2 (from matplotlib->DeepXDE)
Downloading fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl.metadata (118 kB)
Collecting kiwisolver>=1.3.1 (from matplotlib->DeepXDE)
Downloading kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl.metadata (5.1 kB)
Collecting pillow>=9 (from matplotlib->DeepXDE)
Downloading pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl.metadata (9.1 kB)
Collecting pyparsing>=3 (from matplotlib->DeepXDE)
Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: python-dateutil>=2.7 in /Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages (from matplotlib->DeepXDE) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in /Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages (from python-dateutil>=2.7->matplotlib->DeepXDE) (1.17.0)
Downloading deepxde-1.15.0-py3-none-any.whl (195 kB)
Downloading scikit_optimize-0.10.2-py2.py3-none-any.whl (107 kB)
Downloading joblib-1.5.3-py3-none-any.whl (309 kB)
Downloading packaging-26.3-py3-none-any.whl (129 kB)
Downloading pyaml-26.7.0-py3-none-any.whl (27 kB)
Downloading scikit_learn-1.9.0-cp314-cp314-macosx_12_0_arm64.whl (8.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB 82.6 MB/s 0:00:00
Downloading narwhals-2.24.0-py3-none-any.whl (461 kB)
Downloading scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl (20.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 20.4/20.4 MB 96.4 MB/s 0:00:00
Downloading threadpoolctl-3.6.0-py3-none-any.whl (18 kB)
Downloading matplotlib-3.11.1-cp314-cp314-macosx_11_0_arm64.whl (9.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.3/9.3 MB 94.1 MB/s 0:00:00
Downloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl (273 kB)
Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
Downloading fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl (2.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 75.6 MB/s 0:00:00
Downloading kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl (64 kB)
Downloading pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl (4.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 85.4 MB/s 0:00:00
Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB)
Downloading pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl (173 kB)
Installing collected packages: threadpoolctl, scipy, PyYAML, pyparsing, pillow, packaging, narwhals, kiwisolver, joblib, fonttools, cycler, contourpy, scikit-learn, pyaml, matplotlib, scikit-optimize, DeepXDE
Successfully installed DeepXDE-1.15.0 PyYAML-6.0.3 contourpy-1.3.3 cycler-0.12.1 fonttools-4.63.0 joblib-1.5.3 kiwisolver-1.5.0 matplotlib-3.11.1 narwhals-2.24.0 packaging-26.3 pillow-12.3.0 pyaml-26.7.0 pyparsing-3.3.2 scikit-learn-1.9.0 scikit-optimize-0.10.2 scipy-1.18.0 threadpoolctl-3.6.0
安裝完成後,你就可以使用它了。
導入 deepxde
……你的Python程式碼…
DeepXDE 文件可在以下網址找到 => https://deepxde.readthedocs.io/en/latest/index.html
對於任何機器學習、基於 PyTorch 或 GPU 的庫來說,機器效能越好,運作效果就越好。記憶體(RAM),尤其是 GPU 記憶體(VRAM)和整合式記憶體(例如基於 Apple Silicon 或 Blackwell 架構的系統)至關重要。這些工具需要工作站層級的硬體才能發揮最大效用。
安裝和匯入操作是在 JMP 19.2 的開發版本上進行的,但應該適用於 JMP 18 或更高版本的任何版本。
注意:我運行的是本地建置的 JMP 20,但預計 JMP 18 或 19 不會出現問題。
您還需要一個後端才能匯入 deepxde。
import jmp
from jmputils import jpip
jpip('install','torch')
import os
os.environ['DDE_BACKEND']='pytorch'
import torch
if torch.mps.is_available():
torch.set_default_device('mps')
if torch.cuda.is_available():
torch.set_default_device('cuda')
import deepxde
help(deepxde)
請注意上面對“mps”和“cuda”的檢查。 MPS 是蘋果的 Metal Performance Shaders(MPS),而 CUDA 則是英偉達在 Windows 和 Linux 系統上的主力顯示卡。這些檢查確保 torch 在可用時使用 GPU。
這段程式碼運行後,在 help(deepdxe) 的幫助下輸出了大量資訊。
import deepxde
help(deepxde)
/*:
Using backend: pytorch
Other supported backends: tensorflow.compat.v1, tensorflow, jax, paddle.
paddle supports more examples now and is recommended.
Matplotlib is building the font cache; this may take a moment.
Help on package deepxde:
NAME
deepxde
PACKAGE CONTENTS
_version
backend (package)
callbacks
config
...
DATA
__all__ = ['backend', 'callbacks', 'data', 'geometry', 'grad', 'icbc',...
VERSION
1.15.0
FILE
/Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages/deepxde/__init__.py
此類討論凸顯了不斷發展的技術如何在印度創造新的職業機會,特別是對於結合物理學、數據科學、機器學習和特定領域知識的專業人士而言。