FuXi-Ocean
Official open-source inference code for FuXi-Ocean.
FuXi-Ocean has been accepted as an Oral presentation at NeurIPS 2025. See the NeurIPS virtual page:
https://neurips.cc/virtual/2025/loc/san-diego/poster/117603
This repository provides ONNX-based ocean forecasting inference and RMSE evaluation utilities for HYCOM-format ocean data.
Release Plan
Repository Layout
.
├── inference_hycom_aim_full.py # ONNX inference script
├── infer_hycom_full.sh # Example inference launcher
├── eval_rmse.py # RMSE evaluation script
├── run_eval_rmse.sh # Example evaluation launcher
├── re.txt # Python dependencies
└── README.md # Project documentation
Environment
Install the Python dependencies:
pip install -r re.txt
Recommended runtime requirements:
- Python 3.8+
- 32+ CPU cores for CPU inference
- 128 GB+ memory for full-resolution HYCOM fields
Inference
inference_hycom_aim_full.py runs autoregressive ONNX inference on normalized HYCOM ocean data.
Arguments
| Argument | Type | Default | Description |
|---|
--input | str | required | Input Zarr dataset path |
--model | str | required | ONNX model path |
--mask | str | required | Land-mask NetCDF path |
--output | str | required | Output directory |
--device | str | cuda | ONNX Runtime execution provider preference: cuda or cpu |
--total_step | int | 40 | Number of autoregressive forecast steps |
--hour_interval | int | 6 | Forecast interval in hours |
--start_time | str | 20150101 | Inclusive start time |
--end_time | str | 20151230 | Inclusive end time |
--stride | int | 1 | Stride over candidate initialization windows |
Input Data
The expected input is a normalized Zarr dataset with dimensions (time, channel, lat, lon).
Example structure:
hycom.6h.2006_2015.2160_4320.c105/
├── .zarray
├── .zattrs
├── channel/
├── lat/
├── lon/
├── time/
├── data/
├── mean.nc
├── std.nc
└── land_mask.nc
Expected data shape:
Dimensions: (time: 14044, channel: 105, lat: 2160, lon: 4320)
Coordinates:
* time (time) datetime64[ns] 2006-01-01T12:00:00 ... 2015-12-31
* channel (channel)
Coordinates:
* channel (chan