Um Tutorial de Codificação Passo a Passo sobre NVIDIA PhysicsNeMo: Fluxo de Darcy, FNOs, PINNs, Modelos de Substituição e Análise Comparativa de Inferência

Um Tutorial de Codificação Passo a Passo sobre NVIDIA PhysicsNeMo: Fluxo de Darcy, FNOs, PINNs, Modelos de Substituição e Análise Comparativa de Inferência

Neste tutorial, implementamos o NVIDIA PhysicsNeMo no Colab e construímos um fluxo de trabalho prático para o aprendizado de máquina informado pela física. Começamos configurando o ambiente, gerando dados para o problema do Fluxo de Darcy 2D e visualizando os campos físicos para entender claramente a tarefa de aprendizado. A partir daí, implementamos e treinamos modelos poderosos como o […] A publicação A Step-by-Step Coding Tut

Neste tutorial, implementamos o NVIDIA PhysicsNeMo no Colab e construímos um fluxo de trabalho prático para o aprendizado de máquina informado pela física. Começamos configurando o ambiente, gerando dados para o problema do Fluxo de Darcy 2D e visualizando os campos físicos para entender claramente a tarefa de aprendizado. A partir daí, implementamos e treinamos modelos poderosos como o Fourier Neural Operator e um modelo de substituição convolucional de base, enquanto também exploramos as ideias por trás das Physics-Informed Neural Networks. Além disso, comparamos arquiteturas, avaliamos previsões, analisamos o desempenho da inferência e salvamos modelos treinados, proporcionando uma visão prática abrangente de como o PhysicsNeMo pode ser usado para problemas de aprendizado de máquina científico. Copiar Código Copiado Usar um navegador diferente print("="*80)
print("SEÇÃO 1: INSTALAÇÃO E CONFIGURAÇÃO")
print("="*80)
import subprocess
import sys
def install_packages():
"""Instala os pacotes necessários para o tutorial."""
packages = [
"nvidia-physicsnemo",
"matplotlib",
"numpy",
"h5py",
"scipy",
"tqdm",
]
for package in packages:
print(f"Instalando {package}...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", package])
print("\n✓ Todos os pacotes instalados com sucesso!")
install_packages()
print("\n" + "="*80)
print("SEÇÃO 2: IMPORTAÇÕES E CONFIGURAÇÃO")
print("="*80)
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.utils.data import DataLoader, Dataset
import numpy as np
import matplotlib.pyplot as plt
from typing import Dict, List, Tuple, Optional
from tqdm import tqdm
import warnings
warnings.filterwarnings('ignore')
print(f"Usando dispositivo: {device}")
if torch.cuda.is_available():
print(f"GPU: {torch.cuda.get_device_name(0)}")
print(f"Memória: {torch.cuda.get_device_properties(0).total_memory / 1e9:.2f} GB")
try:
import physicsnemo
print(f"Versão do PhysicsNeMo: {physicsnemo.version}")
PHYSICSNEMO_AVAILABLE = True
except ImportError:
print("PhysicsNeMo não instalado. Usando implementações personalizadas.")
PHYSICSNEMO_AVAILABLE = False
def set_seed(seed: int = 42):
"""Define seeds aleatórias para reprodutibilidade."""
torch.manual_seed(seed)
np.random.seed(seed)
if torch.cuda.is_available():
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
set_seed(42)
print("\n" + "="*80)
print("SEÇÃO 3: GERAÇÃO DE DADOS - FLUXO DE DARCY 2D")
print("="*80)
""" A equação do Fluxo de Darcy 2D é um clássico

IA para FísicaModelagem CientíficaMachine Learning