Spaces:
Running
Running
File size: 1,389 Bytes
e19a1ca 09a6e08 e19a1ca 09a6e08 e19a1ca 09a6e08 e19a1ca 09a6e08 e19a1ca 09a6e08 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# Install necessary packages (only for local environment)
# !pip install pandas granite-tsfm gradio
import pandas as pd
import gradio as gr
from granite_tsfm import TimeSeriesPreprocessor, TinyTimeMixerForPrediction, TimeSeriesForecastingPipeline
# Function to load model and make predictions
def forecast(csv_file):
data = pd.read_csv(csv_file.name, parse_dates=['timestamp_column'])
tsp = TimeSeriesPreprocessor(
id_columns=[],
timestamp_column='timestamp_column',
target_columns=['value1', 'value2'], # Replace with your target column names
prediction_length=96,
context_length=512,
scaling=True
)
processed_data = tsp.fit_transform(data)
model = TinyTimeMixerForPrediction.from_pretrained(
'ibm-granite/granite-timeseries-ttm-r2',
num_input_channels=tsp.num_input_channels
)
pipeline = TimeSeriesForecastingPipeline(
model=model,
feature_extractor=tsp
)
forecasts = pipeline(data)
return forecasts.to_csv(index=False)
# Create Gradio interface
iface = gr.Interface(
fn=forecast,
inputs=gr.File(label="Upload CSV File"),
outputs=gr.File(label="Download Forecasts"),
title="Time Series Forecasting with Granite-TimeSeries-TTM-R2",
description="Upload a CSV file with a timestamp column to generate forecasts."
)
iface.launch()
|