Bonjour, je suis M1 qui s'est vu confier un certain cours pour les étudiants B1 et B2. Le contenu est de vous apprendre à utiliser Tensorflow ** 1.12 **, ce qui signifie examiner ** l'Enfer de l'environnement ** et ** l'Enfer de la compatibilité **.
Le but de cet article est de créer un état dans lequel les ** utilisateurs Windows ** peuvent développer, afin de créer un environnement dans lequel ils peuvent démarrer le développement pour le moment.
Pour commencer par la conclusion, j'ai écrit un script powershell comme celui-ci. Vous pouvez obtenir un environnement agréable en exécutant ce type.
L'environnement de développement est différent pour chaque personne, et j'utilise Manjaro Linux x Docker x Emacs x LSP, qui est un environnement assez rigide, mais ce n'est pas le seul qui soit anormal.
En tant que classe universitaire, j'enseigne souvent Emacs (~~ pour augmenter mon aversion pour Emacs ~~), mais peut-être à cause de cela, la situation actuelle est que les éditeurs tels que vim, neovim, gvim ou VSCode sont toutes des variétés. Cela existe comme un problème.
De plus, lorsque macOS, célèbre pour ses paillettes, Ubuntu, qui ressemble à un fou, et Windows 8 (/ 10), que je ne sais pas mais que je vend là-bas, entrent en tant qu'options de système d'exploitation, l'explosion de la combinaison est dangereuse.
Commencez par organiser les conditions requises pour créer un script.
Nous allons créer un didacticiel distinct pour Mac et Linux, et mettre à jour à 10 pour Windows. Heureusement, l'université à laquelle j'appartiens distribue Windows 10, donc Windows 8 / 8.1 aura une politique de mise à jour.
WSL, Bash sur Ubuntu et Hyper-V ne peuvent pas être utilisés car il y a de fortes chances qu'ils soient désactivés en raison des performances ou de l'engagement logiciel. Avec Powershell ... Je suis sûr que ça va.
Récemment, LSP (language-server-protocol) est devenu un outil de complément / vérification populaire. Par exemple, les éditeurs populaires tels que VSCode, Vim et Emacs prennent en charge LSP. Je suis sûr que vous utilisez un éditeur qui peut l'utiliser. ~~ Je ne connais pas les blocs-notes ~~
Avec cette exigence, nous écrirons un script.
python_install_on_windows.ps1
# installation scoop
try {
scoop --version
} finally {
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
}
# install some utility applications
scoop install python wget curl git
python --version
pip install pipenv
# install pyenv environment
if (!(get-command pyenv -errorAction SilentlyContinue)) {
pip install pyenv-win --target $env:USERPROFILE\.pyenv
[Environment]::SetEnvironmentVariable("PATH", "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims", "User")
$env:PATH = "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims"
}
pyenv install 3.6.8-amd64
# create temporary file
if (!(Test-Path $env:USERPROFILE\.cache)) {
New-Item $env:USERPROFILE\.cache -ItemType Directory
}
if (!(Test-Path $env:USERPROFILE\.cache\tmp)) {
New-Item $env:USERPROFILE\.cache\tmp -ItemType Directory
}
# create project file
if (!(Test-Path $env:USERPROFILE\tensorflow_tutorial)) {
New-Item $env:USERPROFILE\tensorflow_tutorial -ItemType Directory
}
# setup python environment
Set-Location $env:USERPROFILE\tensorflow_tutorial
pipenv install --python 3.6.8-amd64
pipenv install tensorflow==1.12.0 python-language-server[all] ipython
Enregistrez-le dans un emplacement approprié et rendez les propriétés du fichier exécutables comme suit.
Ensuite, placez ce fichier sur Powershell
./python_install_on_windows.ps1
Si vous exécutez, il sera installé sans autorisation et C: \ Users \ <USername> \ tensorflow_tutorial
sera créé comme exemple de projet.
Après cela, ce sera une explication de ce que vous faites.
Que fait ce script
--Installation du système de gestion de paquets Windows Scoop --Installez Python --Installation de Pyenv --Créez un dossier temporaire pour LSP --Création d'un exemple de projet
Il est devenu.
Scoop est un outil pour l'installation spécifique à l'utilisateur de paquets à la manière Unix. Les avantages de cet outil sont ** aucune autorisation requise **, ** facile à installer **, ** des commandes similaires à Linux et macOS **.
# installation scoop
try {
scoop --version
} finally {
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
}
Maintenant que Scoop est installé, vous pouvez installer des logiciels / applications ** généraux ** comme Python.
git, curl, wget sont des commandes que vous voulez connaître à propos de B3, B4 ou version ultérieure, et git est parfois interrogé sur la recherche d'emploi, alors profitons de cette occasion pour apprendre.
# install some utility applications
scoop install python wget curl git
python --version
Pyenv est introduit pour les outils de gestion de version Python. Il existe différentes versions de Python telles que 3.5 et 3.6, et cette version est limitée à Gorigori pour ~~ shit ~~ Tensorflow.
Il existe également un moyen d'installer tous les binaires individuellement et de les passer par le chemin, mais cette fois, j'utiliserai un outil appelé Pyenv pour réduire les opérations d'écran gênantes.
# install pyenv environment
if (!(get-command pyenv -errorAction SilentlyContinue)) {
pip install pyenv-win --target $env:USERPROFILE\.pyenv
[Environment]::SetEnvironmentVariable("PATH", "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims", "User")
$env:PATH = "$env:Path;$env:USERPROFILE\.pyenv\pyenv-win\bin;$env:USERPROFILE\.pyenv\pyenv-win\shims"
}
Le protocole Language Server est simplement la complétion de code, définissant un format pour faire quelque chose comme un message d'erreur et, dans de rares cas, son implémentation. Dans LSP, un système appelé serveur qui analyse le code apparaîtra en plus de l'éditeur. Vous trouverez ci-dessous une citation de Documentation VSCode.
L'une des motivations est: "Envoyons et recevons du code, des messages d'erreur et des documents de code comme celui-ci quelle que soit la langue, et il sera plus facile d'implémenter la complétion dans chaque éditeur."
En introduisant cela, il est possible de standardiser dans une certaine mesure les paramètres de finalisation pour les éditeurs avec autant d'étoiles.
# create temporary file
if (!(Test-Path $env:USERPROFILE\.cache)) {
New-Item $env:USERPROFILE\.cache -ItemType Directory
}
if (!(Test-Path $env:USERPROFILE\.cache\tmp)) {
New-Item $env:USERPROFILE\.cache\tmp -ItemType Directory
}
Comme exemple de projet, créez un environnement de ** tensorflow 1.12 **.
tensorflow 1.12 ne prend en charge que l'environnement ** <= python3.6 **, donc installez ** 3.6.8 **.
Ensuite, créez un dossier de projet, puis utilisez pipenv, un ** outil de gestion de package ** (pas une version) pour installer tensorflow, python-language-sever et ipython sous python 3.6.8. Je vais.
pip install pipenv
pyenv install 3.6.8-amd64
# create project file
if (!(Test-Path $env:USERPROFILE\tensorflow_tutorial)) {
New-Item $env:USERPROFILE\tensorflow_tutorial -ItemType Directory
}
# setup python environment
Set-Location $env:USERPROFILE\tensorflow_tutorial
pipenv install --python 3.6.8-amd64
pipenv install tensorflow==1.12.0 python-language-server[all] ipython
Pour exécuter l'exemple de projet, par exemple pour vim
pipenv run vim
Réveillez-vous sous la forme de. Pour VSCode, ouvrez simplement le dossier tensorflow_tutorial
et vous êtes prêt à partir.
Un exemple de fichier de configuration vim est ici, mais je n'ai pas une longue histoire de vim, il est donc probablement préférable d'écouter avec un hashtag sur Twitter.
Pour activer ce fichier de configuration, procédez comme suit:
Installez vundle
mkdir ~/.vim
mkdir ~/.vim/bundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
:PluginInstall
: PlugInstall
sur vim.
Recommended Posts