@echo off if not defined PYTHON (set PYTHON=python) if not defined GIT (set GIT=git) if not defined COMMANDLINE_ARGS (set COMMANDLINE_ARGS=%*) if not defined VENV_DIR (set VENV_DIR=venv) if not defined TORCH_COMMAND (set TORCH_COMMAND=pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113) if not defined REQS_FILE (set REQS_FILE=requirements_versions.txt) mkdir tmp 2>NUL %PYTHON% -c "" >tmp/stdout.txt 2>tmp/stderr.txt if %ERRORLEVEL% == 0 goto :setup_venv echo Couldn't launch python goto :show_stdout_stderr :setup_venv if [%VENV_DIR%] == [-] goto :skip_venv dir %VENV_DIR%\Scripts\Python.exe >tmp/stdout.txt 2>tmp/stderr.txt if %ERRORLEVEL% == 0 goto :activate_venv for /f "delims=" %%i in ('CALL %PYTHON% -c "import sys; print(sys.executable)"') do set PYTHON_FULLNAME="%%i" echo Creating venv in directory %VENV_DIR% using python %PYTHON_FULLNAME% %PYTHON_FULLNAME% -m venv %VENV_DIR% >tmp/stdout.txt 2>tmp/stderr.txt if %ERRORLEVEL% == 0 goto :activate_venv echo Unable to create venv in directory %VENV_DIR% goto :show_stdout_stderr :activate_venv set PYTHON="%~dp0%VENV_DIR%\Scripts\Python.exe" %PYTHON% --version echo venv %PYTHON% goto :install_torch :skip_venv echo Skip %PYTHON% --version :install_torch %PYTHON% -c "import torch" >tmp/stdout.txt 2>tmp/stderr.txt if %ERRORLEVEL% == 0 goto :check_gpu echo Installing torch... %PYTHON% -m %TORCH_COMMAND% >tmp/stdout.txt 2>tmp/stderr.txt if %ERRORLEVEL% == 0 goto :check_gpu echo Failed to install torch goto :show_stdout_stderr :check_gpu %PYTHON% -c "import torch; assert torch.cuda.is_available(), 'CUDA is not available'" >tmp/stdout.txt 2>tmp/stderr.txt if %ERRORLEVEL% == 0 goto :launch echo Torch is not able to use GPU goto :show_stdout_stderr :launch echo Launching prune.py... %PYTHON% prune.py pause exit /b :show_stdout_stderr echo. echo exit code: %errorlevel% for /f %%i in ("tmp\stdout.txt") do set size=%%~zi if %size% equ 0 goto :show_stderr echo. echo stdout: type tmp\stdout.txt :show_stderr for /f %%i in ("tmp\stderr.txt") do set size=%%~zi if %size% equ 0 goto :show_stderr echo. echo stderr: type tmp\stderr.txt :endofscript echo. echo Launch unsuccessful. Exiting. pause