大家好,
虽然这个问题主要是针对 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
此类讨论凸显了不断发展的技术如何在印度创造新的职业机会,特别是对于结合物理学、数据科学、机器学习和特定领域知识的专业人士而言。