以下都是在windows平台下的。
在另一台装了nvidia显卡的机器上,已经装了ubuntu的系统下的python的本地环境和docker实现。
之所以要在windows平台下安装深度学习框架,是因为要在笔记本的windows平台下写文档,不想完全切换到linux环境下。
windows平台下,没有nvidia-docker(已经改成了docker run --runtime=nvidia ...),所以win下使用docker的话,即使装了cudn,也不可能运行tensorflow-gpu,docker里的tensorflow只能是cpu版本的。
docker toolbox会启动一个VM虚拟机,是旧的在win下管理docker的工具,docker官网已经不推荐了,安装Docker for Windows Installer,win10专业版的话,自带的hyper-v会自动运行一个MobyLinuxVM虚拟机。
安装的docker for windows,开始下载的版本是最新的,switch转不到linux containers里,在docker的setting里不出现shared drives和advanced选项。后来找了一低版本的18.06可以用。也可能高版本是因为开始安装的docker toolbox造成的。
为了在windows下运行大量的python27+tensorflow1.X的代码,
有些代码是ipynb的,用jupyter notebook可以打开,安装anaconda ,里面可以点击启动jupyter notebook。
anaconda里,也可以直接在左侧菜单的《环境》里create不同版本的python。安装tensorflow的话,python27版本,使用pip install tensorflow==1.x,但是可能适合匹配的whl版本是没有的。往往要自己到网上寻找tensowflow1.x+cpy27+win的whl,我找到的一个1.5版本的,放在链接里https://download.csdn.net/download/yjm919/12033834。
python27+TF1.x+windows的组合,许多之前的代码都是基于python27+TF1.X这样的组合,在linux环境下很好搞定,但是windows下没人提供更多的软件组合的,也上不了tensorflow-gpu。windows下只能是个简单学习的环境吧。
以上安装成功在程序里运行时,tensorflow模块里,提示一些模块的找不到,可以在模块的那个文件夹里加上_init_.py,空文件也可以,表示这里可以是一个模块文件。一些模块,也可以加#注释掉,根本用不到的。我之前曾经tpu/proto 模块找不到,在文件夹里加了_init_.py不提示了,后来一些提示的模块找不到,就直接加#注释掉了。运行也没问题。
在pycharm(2019、3专业版)里,编译器选择,1、选择本地的配置方式,可以debug跟踪。 编译器选择anaconda environment里,选已存在的环境,然后 python选择 appdata目录anaconda里env下的特定版本的python,conda选择appdata里scripts下的conda。
2、选择docker方式,我下载了yiminglin/dl-image,进入docker run -it yiminglin/dl-image /bin/bash, 在里面pip uninstall tensorflow-gpu,然后pip install tensorflow==1.1.0,然后新开一个窗口,docker commit xxx yjm/dl-image-cpu (xx为docker container ls 查出来id,只取前三位即可)。pycharm里加编译器时选docker,选择tcp://localhost:2357,后面就是运行的docker下面的images了,选择后,会列出所有安装的包,然后可以正常运行了。但是不能调试,代码的位置问题,也不想深究了。这里有一个docker的项目目录影射问题,可以在一个文件里,通过edit “xxx”对这个文件进行编辑,如opt/project 影射到自己项目是/d//x/y/ 即为d:\x\y\
其它的一些经验:
1、pip加速:
pip instll -i https//pyp.douban.com/simple/ hello-world..
https://pypi.douban.com/simple/ 豆瓣
https://mirrors.aliyun.com/pypi/simple/ 阿里
2、docker的 image文件通过docker save -o和 load -i实现不同机器之间移动。
3、搞了1个星期的这些环境搭建,还是在linux下幸福啊。