Files
Atomizer/train_neural.bat

116 lines
3.2 KiB
Batchfile
Raw Normal View History

@echo off
REM ============================================================================
REM Atomizer Neural Network Training Script
REM ============================================================================
REM Trains a parametric neural network on collected FEA data
REM
REM Usage:
REM train_neural.bat (uses default: bracket study)
REM train_neural.bat study_name (specify study name)
REM train_neural.bat study_name 200 (specify epochs)
REM ============================================================================
echo.
echo ============================================================================
echo ATOMIZER NEURAL NETWORK TRAINING
echo ============================================================================
echo.
REM Set defaults
set STUDY_NAME=bracket_stiffness_optimization_atomizerfield
set EPOCHS=100
REM Parse arguments
if not "%~1"=="" set STUDY_NAME=%~1
if not "%~2"=="" set EPOCHS=%~2
set TRAIN_DIR=atomizer_field_training_data\%STUDY_NAME%
set OUTPUT_DIR=atomizer-field\runs\%STUDY_NAME%
echo Study: %STUDY_NAME%
echo Epochs: %EPOCHS%
echo Train Dir: %TRAIN_DIR%
echo Output: %OUTPUT_DIR%
echo.
REM Check training data exists
if not exist "%TRAIN_DIR%" (
echo ERROR: Training data not found at %TRAIN_DIR%
echo.
echo Available training data directories:
dir atomizer_field_training_data /b 2>nul
echo.
pause
exit /b 1
)
REM Count trials
echo Counting training trials...
set /a count=0
for /d %%d in ("%TRAIN_DIR%\trial_*") do set /a count+=1
echo Found %count% trials
echo.
if %count% LSS 20 (
echo WARNING: Less than 20 trials. Training may not converge well.
echo Consider running more FEA simulations first.
echo.
)
REM Check PyTorch
python -c "import torch; print(f'PyTorch {torch.__version__}')" 2>nul
if errorlevel 1 (
echo ERROR: PyTorch not installed
echo Run install.bat first
pause
exit /b 1
)
REM Check for GPU
echo.
echo Checking for GPU...
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}'); print(f'Device: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"CPU\"}')"
echo.
REM Start training
echo ============================================================================
echo Starting training...
echo ============================================================================
echo.
echo Press Ctrl+C to stop training early (checkpoint will be saved)
echo.
cd atomizer-field
python train_parametric.py ^
--train_dir "..\%TRAIN_DIR%" ^
--epochs %EPOCHS% ^
--output_dir "runs\%STUDY_NAME%" ^
--batch_size 16 ^
--learning_rate 0.001 ^
--hidden_channels 128 ^
--num_layers 4
if errorlevel 1 (
echo.
echo Training failed! Check error messages above.
cd ..
pause
exit /b 1
)
cd ..
echo.
echo ============================================================================
echo TRAINING COMPLETE!
echo ============================================================================
echo.
echo Model saved to: %OUTPUT_DIR%\checkpoint_best.pt
echo.
echo To use the trained model in optimization:
echo cd studies\%STUDY_NAME%
echo python run_optimization.py --run --trials 100 --enable-nn --resume
echo.
pause