之前配置foundationpose环境花了大量时间,一直卡在boost库的配置,但是又是必要的后面才知道这需要Linux系统,后来脑子一拍既然一堆神经网络都需要Linux系统何苦折磨自己的电脑。
考虑到装双系统太麻烦,而且我的电脑本身就很垃圾,所以使用云端GPU显然是个不错的选择。
这里我使用的是autodl算力云,价格便宜,因为算法社区的存在配置环境也是相当的快,学生还有优惠,绝对是你的第一选择(反正老师会报销的)。AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL
租GPU并创建环境
充值完autodl以后就可以去购买了
这里随便选的3090的一个显卡专区,有钱的也可以去租更贵的。
选择好创建并开机就可以了。
进入控制台
可以先不急着开机,开机每小时1.58/h还是蛮贵的。
你可以选择无卡模式开机(在更多里面)
在vscode中远程连接autodl
在插件中下载好了remote-ssh等插件的情况下(左边出现下面红标的东西)
点击左下角红标处再点击连接到主机。
复制第一个登陆指令粘贴进去
这时候就会新开一个界面开始连接初始化然后再复制密码
就可以进去了,这时候左下角就会显示ssh连接到了:
注意这里如果你已经连接过一次,就不要直接粘贴,而是直接点你之前连接的这个主机否则会显示连接失败。
这时候如果你处于开卡模式去打开文件夹运行run_demo.py应该是会出现这个错误。(下图为foundationpose)(没错你不用大费周章的去重新配置环境,社区已经有人给你配置好了感动)
qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/root/miniconda3/envs/fp/lib/python3.9/site-packages/cv2/qt/plugins" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb.
而不会显示图像
除此之外,你使用matplotlib,或者opencv展示图像也是展示不出来的,所以这个问题千万不要丢给ai,ai只会浪费你更多的时间。
连接远程GPU但是实现图像的展示
下载mobaxterm并连接远程gpu
这时候我们就需要另外一个软件了,这个软件是mobaxterm
MobaXterm Xserver 带有 SSH、telnet、RDP、VNC 和 X11 – 家庭版 — MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 – Home Edition
上面是下载连接选择绿色的下载就行。进去以后先用MobaXterm配置ssh,这一步可以看下面的链接:
使用 MobaXterm 连接矩池云 GPU服务器_mobaxtermgpu版本-CSDN博客
虽然云服务器不一样但是具体都差不多这里我就不多说了。
我们看到这个博客最后
x11-forwarding为x,所以这样依然无法展示图像,你可以先试试xclock,只有输入xclock在mobaxterm中可以展示出来,才说明你等下可以在vscode中跑代码才能展示图像。那么这里要怎么设置嘞。
将X11 Forwarding打开以实现图形可视化
首先还是在这个界面
这里我们毕竟有root的权限,可以直接输入下面三行代码:
sudo apt-get update
sudo apt-get install xorg
sudo apt-get install xauth
然后配置ssh服务器
sudo vim /etc/ssh/sshd_config
毕竟我是个机械生所以对ubantu操作系统其实不太懂,所以这里修改我讲细一点:
-
进入 vim 后,按 i 进入插入模式进行修改。(插入以下内容,右键点一下就可以粘贴进去)
- X11Forwarding yes
X11UseLocalhost no -
修改完成后,按 Esc 退出插入模式,然后输入 :wq 保存并退出。
这里有些哥们会出现权限问题,你就重启软件一下就好了。
没问题的话就重启ssh
sudo service ssh restart
然后我们来到主界面右键你的session选择
将其Adavanced SSH settings中的X11-forwarding勾选上。
在setting中选择configuration
选择X11 remote access为 full
这时候在mobaxterm终端输入xclock会显示图像
即代表成功,并且再次进来会发现:
X11 Forwarding也是绿色的√。
在vscode运行代码并得到结果展示
然后我们开卡回到vscode重新运行run_demo.py发现依然展示不出图像,或者是下面随便打的代码也依然展示不出图像
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
scatter = ax.scatter(x, y, z, c='r', marker='o')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
ax.set_title('3D Scatter Plot')
plt.show()
运行以后只是运行成功但是没有展示
这时候需要在mobaxterm终端中输入:
echo $DISPLAY
并将其结果复制下来
在vscode终端中输入
export DISPLAY=
并将刚刚的结果粘贴进去。
再次运行可以发现之前那段随便输入的代码可以得出图像了。
这时候如果你是开卡模式去运行run_demo.py可以得出结果:
以上便是连接云端gpu进行本地运行,并可以得到图像展示,远程连接是很简单的,得到图像还是有点难的。
评论前必须登录!
注册