Usage Guide
This guide demonstrates how to use the 5D Neural Network Interpolator system.
Web Interface Workflow
Upload Dataset
Open http://localhost:3000 in your browser
Click “Choose a file” and select your .pkl dataset file
Click “Continue” - the system will validate and display dataset statistics
Train Model
Configure model parameters: * Hidden layer sizes (default: [64, 32, 16]) * Learning rate (default: 0.001) * Max iterations (default: 300)
Click “Train model”
View training metrics and graphs
Make Predictions
Enter 5 feature values
Click “Predict”
View the prediction result
Python API Usage
Direct Library Usage
You can also use the Python modules directly:
from pydis_nn.data import load_and_preprocess
from pydis_nn.neuralnetwork import NeuralNetwork
from pydis_nn.utils import generate_sample_dataset
# Generate or load dataset
data = generate_sample_dataset(n=1000, seed=42)
# Or load from file
# from pydis_nn.data import load_and_preprocess
# data = load_and_preprocess('my_dataset.pkl', random_state=42)
# Create model
model = NeuralNetwork(
hidden_sizes=[64, 32, 16],
learning_rate=0.001,
max_iter=300,
random_state=42
)
# Train
model.fit(
data['X_train'],
data['y_train'],
X_val=data['X_val'],
y_val=data['y_val']
)
# Evaluate
test_r2 = model.score(data['X_test'], data['y_test'])
print(f"Test R²: {test_r2:.4f}")
# Predict
predictions = model.predict(data['X_test'])
REST API Usage
Using curl:
Upload dataset:
curl -X POST "http://localhost:8000/upload" \
-F "file=@my_dataset.pkl"
Train model:
curl -X POST "http://localhost:8000/train" \
-H "Content-Type: application/json" \
-d '{
"hidden_sizes": [64, 32, 16],
"learning_rate": 0.001,
"max_iter": 300,
"random_state": 42
}'
Make prediction:
curl -X POST "http://localhost:8000/predict" \
-H "Content-Type: application/json" \
-d '{
"features": [0.1, 0.2, 0.3, 0.4, 0.5]
}'
Using Python requests:
import requests
# Upload dataset
with open('my_dataset.pkl', 'rb') as f:
response = requests.post(
'http://localhost:8000/upload',
files={'file': f}
)
# Train model
response = requests.post(
'http://localhost:8000/train',
json={
'hidden_sizes': [64, 32, 16],
'learning_rate': 0.001,
'max_iter': 300
}
)
results = response.json()
print(f"Test R²: {results['test_r2']:.4f}")
# Make prediction
response = requests.post(
'http://localhost:8000/predict',
json={'features': [0.1, 0.2, 0.3, 0.4, 0.5]}
)
prediction = response.json()['prediction']
print(f"Prediction: {prediction}")