116 lines
3.2 KiB
Batchfile
116 lines
3.2 KiB
Batchfile
|
|
@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
|