文章目录
实验室需要将Win10的系统改装为Server系统供多人以远程桌面的方式使用,同时配置Tensorflow+Pytorch的深度学习环境,遂记录一下大概步骤。
1.安装Windows Server 2019
和安装其他Windows系统的步骤差不多,也是插入U盘后进BIOS然后根据引导分区创建管理员等等,可以参考:windows server 2019安装教程
2.开启WLAN服务
如果装完系统后就能直接联网或者不需要使用WIFI的话可以跳过这一步(可惜我们这个机子不能。。。)首先需要自备一个随身wifi或者网线之类的确保能联网,然后到服务器管理器中开启WLAN服务。
打开服务器管理器-》添加角色和功能-》服务器选择-》功能-》找到“无线LAN服务”勾选-》安装。
安装完毕后再重启(一定要重启),如果安装无误的话打开后应该就能搜索到WIFI了。
3.固定IP地址
为了能够使用远程桌面登录,需要固定服务器的IP地址。在确保能够联网之后,打开命令行(Win+R,输入cmd后回车),输入ipconfig /all,找到IPv4地址、子网掩码、默认网关、DNS服务器(在最下面)。
然后点击WIFI图标,打开网络和Internet配置(从控制面板进也行)-》更改适配器选项-》双击WLAN图标-》属性-》双击“Internet 协议版本4(TCP/IPv4)”-》选择“使用下面的IP地址”和“使用下面的DNS服务器地址”并把之前ipconfig的各种信息依次填写进去后确定-》重启电脑并检查是否能使用固定好的IP地址联网。
注意:如果是使用WIFI的话一定要确定好是使用哪个WIFI,因为IP地址是随着WIFI的变化而变化的,一旦WIFI变了,那么原来固定好的IP地址也没用了,需要重新固定。
4.开启远程桌面服务
这里参考了Windows Server 2019远程桌面服务配置和授权激活。
4.1 添加远程桌面服务
打开服务器管理器-》添加角色和功能-》服务器选择-》功能-》找到“远程桌面服务”-》勾选“Remote Desktop Session Host”和“远程桌面授权”-》安装-》重启。
重启后打开服务器管理器-》工具-》Remote Desktop Services-》远程桌面授权管理器-》此处应该显示未激活的状态。
4.2 激活服务器
右键选择激活服务器,打开激活向导-》选择“Web浏览器”连接方法-》复制产品ID,然后点击远程桌面授权网站https://activate.microsoft.com-》选择启用许可证服务器-》输入刚刚复制的产品ID,公司和国家随便填-》在打开的页面里复制许可证ID到向导中-》完成激活。
4.3 安装许可证
启动许可证安装向导(可以激活完直接启动,也可以从远程桌面授权管理器进去右键服务器选择“安装许可证”)-》点击远程桌面授权网站https://activate.microsoft.com-》选择安装客户端访问许可证-》许可证选择企业协议,公司和国家随便填-》产品类型选择“Windows Server 2016远程桌面服务每设备客户端访问许可证”(重要!一定要选2016不是2019!否则许可证无效!而且要用每设备,因为要和后面配置里的每设备对应,每用户会限制时间),数量填9999(等于无限),协议号码填6565792(只能填这个,其他不知道为什么填了不行)-》复制许可证密钥包ID到向导中-》完成许可证安装。
打开服务器管理器-》工具-》Remote Desktop Services-》远程桌面授权管理器-》此处应该显示已激活的状态。
5.配置远程桌面服务
5.1 配置许可证服务器和授权模式
打开服务器管理器-》工具-》Remote Desktop Services-》远程桌面授权诊断程序-》这里会弹出两条警告:1.未配置授权模式。 2.服务器未连接到任何许可证服务器。
打开组策略编辑器(Win+R,输入gpedit.msc)-》“本地计算机策略-计算机配置-管理模板-windows组件-远程桌面服务-远程桌面会话主机-授权”,在右侧找到 “使用指定的远程桌面许可服务器”和“设置远程桌面授权模式”并将两项策略都设置为“已启用”-》在“使用指定的远程桌面许可服务器”中,“要使用的许可证服务器”输入之前固定好的IP地址-》在“设置远程桌面授权模式”中,选择“指定RD会话主机服务器的授权模式”为“按设备”。
5.2 配置连接模式
打开组策略编辑器(Win+R,输入gpedit.msc)-》“本地计算机策略-计算机配置-管理模板-windows组件-远程桌面服务-远程桌面会话主机-连接”,在右侧找到 “限制连接的数量”和“将远程桌面服务用户限制到单独的远程桌面服务会话”(启用这一项可以保留之前的远程桌面)并将两项策略都设置为“已启用”-》在 “限制连接的数量”中,“允许的RD最大连接数”输入999999。
5.3 启用计算机的远程功能
右击“此电脑”(如果找不到图标的话,右击桌面-》个性化-》主题-》桌面图标设置-》把缺的图标全勾上确定)-》属性-》选择“远程”选项卡-》勾选“允许远程连接到此计算机”并去掉下方“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”的勾-》确定。
5.4 设置用户能使用简单密码
这一步是为了创建用户时能直接使用数字和字母简单结合的模式(不然记不住哈哈哈)。
打开组策略编辑器(Win+R,输入gpedit.msc)-》“本地计算机策略”-“Windows设置”-“安全设置”-“账户策略”-“密码策略”-》找到“密码必须符合复杂性要求”并禁用。
最后,打开cmd输入“gpupdate /force”强制更新组策略,然后重启服务器。重启后新建一个用户测试远程桌面登录是否能成功。至此,远程桌面服务部署告一段落。
6.配置CUDA环境
打开cmd输入“nvidia-smi”后会发现命令无法找到(如果有CUDA信息则可以忽略此步),这是因为我们还没有安装任何CUDA。
因为Tensorflow和Pytorch均对于CUDA有版本要求(Pytorch好一点,Tensorflow要求很严格,cuDNN和CUDA小一个版本、版本不对应都不行),所以在安装CUDA之前,请先对照Tensorflow与CUDA、cudnn版本对应关系和Pytorch以往版本看一下需要安装的Tensorflow和Pytorch版本和CUDA版本对应的关系,确保要安装的CUDA版本大于等于所需求的CUDA版本。一般来说显卡越高级CUDA版本越高,高CUDA版本虽然能兼容一定低CUDA版本,但也不能兼容太低(比如3080显卡,CUDA版本一般默认11.x,但装不了tf1.10以下的版本),所以除非对Tensorflow有特殊版本需求,最好还是安装11.x版本的CUDA。
6.1 更新驱动
右键桌面打开NVIDIA控制面板,打开后在右面可以直接看到当前NVIDIA的驱动版本。
然后对照NVIDIA驱动版本与CUDA版本对应关系看一下当前驱动版本是否大于等于自己想要的CUDA版本对应的驱动版本,如果符合的话就不需要更新驱动了。
打开NVIDIA Driver Downloads选择对应的机型和操作系统,点击“Search”,选择最新的驱动版本下载,下载完成后打开.exe文件直接安装即可。
安装完驱动后重启计算机,否则可能出现CUDA不兼容的问题。
6.2 安装CUDA
在CUDA Toolkit Archive找到对应CUDA版本的最新版CUDA Toolkit,选择操作系统和exe(local)下载。
下载完成后打开—》选择自定义—》把能勾选的都选上,会自动帮你覆盖和更新-》完成安装。
安装完CUDA后重启计算机,在cmd中输入nvidia-smi,此处应该能显示驱动及CUDA信息。
6.3 安装cuDNN
在cuDNN Archive中找到对应版本的cuDNN下载(需要登录)。
解压后将三个文件夹里的文件分别复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4(这里的11.4可以换成其他版本)的bin、include和lib中。
6.4 配置环境变量
右键此电脑-》属性-》左侧的“高级系统设置”-》“高级”选项卡-》环境变量。
在系统变量中添加:
CUDA_BIN_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin
CUDA_LIB_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\lib\x64
CUDA_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4
CUDA_PATH_V11_4:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4
CUDA_SDK_BIN_PATH:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.4\bin\win64
CUDA_SDK_LIB_PATH:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.4\common\lib\x64
CUDA_SDK_PATH:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.4
在系统变量的Path中添加:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\libnvvp
%CUDA_BIN_PATH%
%CUDA_LIB_PATH%
%CUDA_SDK_BIN_PATH%
%CUDA_SDK_LIB_PATH%
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\libnvvp
配置完成后确定,重启计算机。重启后在cmd中输入nvcc -V,如安装和配置无误则会显示cuda信息。
在cmd中cd到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\extras\demo_suite中,输入bandwidthTest.exe和deviceQuery.exe,如果显示两个result=PASS则配置成功。
7.配置Anaconda+Pycharm环境
7.1 安装Anaconda
打开Anaconda Distribution点击Download下载Anaconda,下载完成后打开安装程序-》选择All Users-》安装到一个空的英文文件夹-》Advanced Options中能勾选的都选上,我这里不知道为什么第一项没法选所以之后只能自己再配环境变量-》安装。
打开环境变量,在系统变量的Path中添加:
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin
C:\ProgramData\Anaconda3\Library\usr\bin
C:\ProgramData\Anaconda3\Library\mingw-w64\bin
完成后打开Anaconda Promt,输入conda info和conda --version查看是否能够输出信息。
7.2 安装Pycharm
打开Download PyCharm下载Community版本,下载完成后打开安装程序-》选择安装文件夹后在Installation Options页面把能勾选的都选上-》安装后重启计算机。
重启后可以自己打开Pycharm新建一个项目测试一下,一般是没什么问题的。(新建项目的时候会让你选择环境,这里可以选择“Previously configured interpreter”,然后选择默认的Anaconda环境路径,比如C:\ProgramData\Anaconda3)
8.配置Tensorflow+Pytorch环境
8.1 创建环境
在Anaconda中新建一个环境,可以采用在Anaconda Navigator中直接Create一个环境,也可以在Anaconda Prompt中输入conda create -n 环境名 python=版本号来创建。(Python版本号最好选择3.7-3.10,能包含大多数高版本的Tensorflow和Pytorch。)
8.2 配置pip和conda国内下载源
创建完环境后,在安装开始前,为了避免直接pip install和conda install的下载速度过慢,先配置一下pip和conda的默认下载源修改为国内源。
首先配置pip,这里找到pip.ini文件(推荐安装一个Everything,找东西很方便),没有的话在C:\Users\用户名\AppData\Roaming\下新建一个pip文件夹,在pip文件夹再新建一个pip.ini文件,pip.ini文件的内容如下:
[global] index-url = https://mirrors.aliyun.com/pypi/simple/
这里的index-url可以改成其他国内源:
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
豆瓣 http://pypi.douban.com/simple/
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
这里推荐用阿里云或者豆瓣的,清华的感觉这两年不太稳定。
然后配置conda,在Prompt中输入如下语句:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --set show_channel_urls yes conda config --set ssl_verify false
这是配置清华源的镜像,还可以添加其他国内源的镜像:
中科大镜像:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/pytorch/
上交大镜像:
conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/menpo/ conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/pytorch/
然后在C:\Users\用户名下找到.condarc文件(没有就自行创建一个),内容如下:
ssl_verify: true show_channel_urls: true channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - defaults
channels里可以添加其他路径。
最后,在Prompt中输入conda config --show-sources
检查已配置的conda源。
8.3 安装Tensorflow-gpu
首先切换到新建好的环境(可以在Navigator中直接点击运行Open Terminal打开,也可以在Prompt中输入conda activate 环境名)-》输入pip install tensorflow-gpu==版本名。
这里需要注意的是,由于环境中一般也需要诸如pandas、matplotlib这样的库,如果安装的是较低版本的tensorflow,有可能会和高版本的pandas、matplotlib等产生冲突。举个例子,比如我这里装的是2.5.0,它最高支持的numpy版本是1.19.5,如果我直接pip install pandas,那它会默认安装最新版本的pandas和numpy,卸载1.19.5的numpy,这样就会和2.5.0的tensorflow产生冲突。
如果产生这种问题,首先卸载pandas和numpy,然后重新安装符合tensorflow版本的numpy:pip install numpy==1.19.5
。然后再次pip install pandas==错误的版本号
,观察所有可以安装的版本,然后逐次降版本试验,比如我这里pandas 1.5.3冲突,那么我就降到1.4.x再重新安装,这里显示安装成功,而且也没有产生冲突问题。
其他库也可以这样操作,当然最好的办法还是直接安装最新的tensorflow,这样直接pip install其他库时也基本不用考虑版本冲突问题了。
然后再测试一下gpu是否能成功运行,在命令行中输入python进入python环境,然后import tensorflow as tf
,再输入print(tf.test.is_gpu_available())
,如果显示True则表示安装成功。
8.4 安装Pytorch-gpu
进入Pytorch最新版本或者Pytorch以往版本找到对应版本Pytorch的安装语句(注意GPU版本的是有CUDA版本要求的,比如2.0.0版本需要CUDA版本在11.7或者11.8以上),然后复制对应语句到Anaconda Prompt中进行安装。
注意,如果是选择conda intall的方式,则需要把-c pytorch去掉。
最后再测试一下gpu是否能成功运行,在命令行中输入python进入python环境,然后import torch
,再输入print(torch.cuda.is_available())
,如果显示True则表示安装成功。
存在问题
1.在安装完远程桌面服务后,发现无法连接上带用户名和密码的WIFI。
2.管理员安装Office、WPS之后,其他用户均无法使用,只能由用户自己再自行安装。
3.多CUDA版本的安装和切换在不同用户之间的优先级不同,可能导致CUDA和cuDNN对应不上,单机没这种情况,所以最好还是只安装一个版本的CUDA。