Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Setup Neural Net
@echo off
REM Does generate.py exist, if so lets assume all of this script has been ran already and just execute the demo.
if exist %~dp0generate.py goto launch
REM If this script wasn't run in the context needed to install needed components lets prompt the user for their permission to do so.
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
REM Deploy Chocolatey ( https://chocolatey.org/install )
powershell.exe Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
REM Download and install VC Runtime, debugged this script in a 100% clean VM and this was a prereq, it would be rare that you dont have this but it won't hurt.
powershell.exe $client = new-object System.Net.WebClient; $client.DownloadFile("'https://aka.ms/vs/16/release/vc_redist.x64.exe','vc_redist.x64.exe'")
vc_redist.x64.exe /passive /norestart
del vc_redist.x64.exe
REM Some jiggery pokery to reload the environment paths etc without closing and relaunching shell after deploying chocolatey.
echo Set oShell = WScript.CreateObject("WScript.Shell") > %~dp0resetvars.vbs
echo filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat") >> %~dp0resetvars.vbs
echo Set objFileSystem = CreateObject("Scripting.fileSystemObject") >> %~dp0resetvars.vbs
echo Set oFile = objFileSystem.CreateTextFile(filename, TRUE) >> %~dp0resetvars.vbs
echo. >> %~dp0resetvars.vbs
echo set oEnv=oShell.Environment("System") >> %~dp0resetvars.vbs
echo for each sitem in oEnv >> %~dp0resetvars.vbs
echo oFile.WriteLine("SET " ^& sitem) >> %~dp0resetvars.vbs
echo next >> %~dp0resetvars.vbs
echo path = oEnv("PATH") >> %~dp0resetvars.vbs
echo. >> %~dp0resetvars.vbs
echo set oEnv=oShell.Environment("User") >> %~dp0resetvars.vbs
echo for each sitem in oEnv >> %~dp0resetvars.vbs
echo oFile.WriteLine("SET " ^& sitem) >> %~dp0resetvars.vbs
echo next >> %~dp0resetvars.vbs
echo. >> %~dp0resetvars.vbs
echo path = path ^& ";" ^& oEnv("PATH") >> %~dp0resetvars.vbs
echo oFile.WriteLine("SET PATH=" ^& path) >> %~dp0resetvars.vbs
echo oFile.Close >> %~dp0resetvars.vbs
%~dp0resetvars.vbs
call "%temp%\resetvars.bat"
REM Using chocolatey to install miniconda3
choco install miniconda3 -y
REM Configure the python base env under miniconda3
SET PATH=C:\tools\miniconda3;C:\tools\miniconda3\Library\mingw-w64\bin;C:\tools\miniconda3\Library\usr\bin;C:\tools\miniconda3\Library\bin;C:\tools\miniconda3\Scripts;C:\tools\miniconda3\bin;C:\tools\miniconda3\condabin;%PATH%
pip install torch transformers pyttsx3 pytz python-dateutil --use-feature=2020-resolver
REM Create a file named generate.py containing the python code for this demo.
echo from os import system >> %~dp0generate.py
echo from transformers import pipeline >> %~dp0generate.py
echo import json, pyttsx3 >> %~dp0generate.py
echo engine = pyttsx3.init() >> %~dp0generate.py
echo # generator = pipeline('text-generation', model='EleutherAI/gpt-neo-2.7B', device=0) >> %~dp0generate.py
echo generator = pipeline('text-generation', model='EleutherAI/gpt-neo-1.3B', device=-1) >> %~dp0generate.py
echo i = 1 >> %~dp0generate.py
echo while i ^< 6: >> %~dp0generate.py
echo intext = input("\n\nInput text:") >> %~dp0generate.py
echo outjson = generator((intext), do_sample=True, max_length=100) >> %~dp0generate.py
echo outtext = json.loads(json.dumps(outjson[0]))["generated_text"] >> %~dp0generate.py
echo print(outtext) >> %~dp0generate.py
echo engine.say(outtext) >> %~dp0generate.py
echo engine.runAndWait() >> %~dp0generate.py
:launch
REM Lets launch the demo, assuming your system is powerful enough to become a non biological intelligence.
C:\tools\miniconda3\python %~dp0generate.py
@RchGrav

This comment has been minimized.

Copy link
Owner Author

@RchGrav RchGrav commented Apr 18, 2021

In the generator.py document which this script outputs there is two different models and the option to run this on a GPU or CPU.
Look for the lines that begin with "generator = pipeline" you can switch which line is used by moving the "# " which comments out the line so it isn't used. Device -1 is the CPU, Device 0 is your GPU, (It may be greater than 0 if your system has more than one installed. you lucky dog.)

@RchGrav

This comment has been minimized.

Copy link
Owner Author

@RchGrav RchGrav commented Apr 18, 2021

If you would like a longer output search the generator.py for "max_length=" and modify it to a larger value.

@RchGrav

This comment has been minimized.

Copy link
Owner Author

@RchGrav RchGrav commented Apr 20, 2021

Regarding GPU support.. you will need to download CUDA from Nvidia's website here: https://developer.nvidia.com/cuda-downloads

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment