# TimesFM
PyTorch
## Overview TimesFM (Time Series Foundation Model) is a pretrained time-series foundation model proposed in [A decoder-only foundation model for time-series forecasting](https://huggingface.co/papers/2310.10688) by Abhimanyu Das, Weihao Kong, Rajat Sen, and Yichen Zhou. It is a decoder only model that uses non-overlapping patches of time-series data as input and outputs some output patch length prediction in an autoregressive fashion. The abstract from the paper is the following: *Motivated by recent advances in large language models for Natural Language Processing (NLP), we design a time-series foundation model for forecasting whose out-of-the-box zero-shot performance on a variety of public datasets comes close to the accuracy of state-of-the-art supervised forecasting models for each individual dataset. Our model is based on pretraining a patched-decoder style attention model on a large time-series corpus, and can work well across different forecasting history lengths, prediction lengths and temporal granularities.* This model was contributed by [kashif](https://huggingface.co/kashif). The original code can be found [here](https://github.com/google-research/timesfm). To use the model: ```python import torch from transformers import TimesFmModelForPrediction model = TimesFmModelForPrediction.from_pretrained( "google/timesfm-2.0-500m-pytorch", torch_dtype=torch.bfloat16, attn_implementation="sdpa", device_map="cuda" if torch.cuda.is_available() else None ) # Create dummy inputs forecast_input = [ np.sin(np.linspace(0, 20, 100)), np.sin(np.linspace(0, 20, 200)), np.sin(np.linspace(0, 20, 400)), ] frequency_input = [0, 1, 2] # Convert inputs to sequence of tensors forecast_input_tensor = [ torch.tensor(ts, dtype=torch.bfloat16).to("cuda" if torch.cuda.is_available() else "cpu") for ts in forecast_input ] frequency_input_tensor = torch.tensor(frequency_input, dtype=torch.long).to( "cuda" if torch.cuda.is_available() else "cpu" ) # Get predictions from the pre-trained model with torch.no_grad(): outputs = model(past_values=forecast_input_tensor, freq=frequency_input_tensor, return_dict=True) point_forecast_conv = outputs.mean_predictions.float().cpu().numpy() quantile_forecast_conv = outputs.full_predictions.float().cpu().numpy() ``` ## TimesFmConfig [[autodoc]] TimesFmConfig ## TimesFmModel [[autodoc]] TimesFmModel - forward ## TimesFmModelForPrediction [[autodoc]] TimesFmModelForPrediction - forward