Git Product home page Git Product logo

uno's Introduction

U-NO: : U-shaped Neural Operators

uno architecture

Abstract

Neural operators generalize classical neural networks to maps between infinite-dimensional spaces, e.g., function spaces. Prior works on neural operators proposed a series of novel methods to learn such maps and demonstrated unprecedented success in learning solution operators of partial differential equations. Due to their close proximity to fully connected architectures, these models mainly suffer from high memory usage and are generally limited to shallow deep-learning models. In this paper, we propose a U-shaped Neural Operator (U-NO), a U-shaped memory-enhanced architecture that allows for deeper neural operators. U-NOs exploit the problem structures in function predictions and demonstrate fast training, data efficiency, and robustness with respect to hyperparameter choices. We study the performance of U-NO on PDE benchmarks, namely, Darcy’s flow law and the Navier-Stokes equations. We show that U-NO results in an average of 26% and 44% prediction improvement on Darcy’s flow and turbulent Navier-Stokes equations, respectively, over the state-of-the-art. On the Navier-Stokes 3D spatiotemporal operator learning task, we show U-NO provides 37% improvement over the state-of-the-art methods.

Paper: U-NO: U-shaped Neural Operators

UNO_Tutorial.ipynb - A step-by-step tutorial for using and buidling U-NO. Link to Google colab Open In Colab

U-NO is now available on Neural Operator library. Quick Start

Requirements

PyTorch 1.11.0

Files

Files Descriptions
integral_operators.py Contains codes for Non-linear integral operators for 1D, 2D, and 3D functions.
UNO_Tutorial.ipynb A tutorial on using the integral operators and U-NO.
Darcy Flow
darcy_flow_main.py Script for loading data, training, and evaluating training UNO performing 2D spatial convolution for solving Darcy Flow equation.
darcy_flow_uno2d.py UNO architectures for solving Darcy Flow equation.
train_darcy.py Training routine for Darcy flow equations.
data_load_darcy.py Function to load Darct-flow data.
Navier–Stokes
data_load_navier_stocks.py Function to load Navier–Stokes data generated by data generator prodived
ns_uno2d_main.py Script for loading data, training, and evaluating the UNO (2D) autoregressive in time for Navier–Stokes equation.
ns_train_2d.py Training function for UNO(2D) in time for Navier–Stokes equation
navier_stokes_uno2d.py UNO(2D) architecture in time for Navier–Stokes equation.
ns_uno3d_main.py Script for loading data,training and evaluating the UNO(3D) performing 3D (spatio-temporal) convolution for Navier–Stokes equation.
navier_stokes_uno3d.py UNO(3D) achitectures performing 3D convolution for Navier–Stokes equation.
ns_train_3d.py Training function for UNO(3D) for Navier–Stokes equation.
Supporting Files
Data Generation Folder contains scripts to generate data from Navier–Stokes equation and Darcy flow
utilities3.py Contains supporting functions for data loading and error estimation.

Data

Link to two files containing 2000 simulations of the Darcy Flow equation: Google Drive Link

The Data Generator folder contains the script for generating a simulation of the Darcy Flow and Navier-Stocks equation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.