package inferences import ( "sync" loaders "thesis_forecasting_website/loaders" ) type StockPrice struct { Date string `json:"date"` Price float32 `json:"price"` } func Denormalization(data, minValue, maxValue float32) float32 { return (data * (maxValue - minValue)) + minValue } func InferenceLoader(inferenceDataPath, scalersDataPath string) ( [][]interface{}, loaders.Scalers, []error, ) { var ( inferenceData [][]interface{} scalersData loaders.Scalers ) errChannel := make(chan error, 2) var wgDatasetScalerLoader sync.WaitGroup wgDatasetScalerLoader.Add(2) go func() { defer wgDatasetScalerLoader.Done() tempData, err := loaders.DatasetLoader(inferenceDataPath) if err != nil { errChannel <- err return } inferenceData = tempData }() go func() { defer wgDatasetScalerLoader.Done() tempData, err := loaders.ScalersLoader(scalersDataPath) if err != nil { errChannel <- err return } scalersData = tempData }() wgDatasetScalerLoader.Wait() close(errChannel) var errors []error for err := range errChannel { errors = append(errors, err) } if len(errors) > 0 { return nil, loaders.Scalers{}, errors } return inferenceData, scalersData, nil }