Um Tutorial de Codificação Passo a Passo sobre NVIDIA PhysicsNeMo: Fluxo de Darcy, FNOs, PINNs, Mod…

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

Fonte: MarkTechPost

Publicado em 2026-04-13

Notícias relacionadas

Continue explorando