IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> CVPR2021| RfDNet 代码运行配环境采坑记录(Ubuntu) -> 正文阅读

[系统运维]CVPR2021| RfDNet 代码运行配环境采坑记录(Ubuntu)

试图运行以下代码:
https://github.com/yinyunie/RfDNet

花了很久,特此记录采坑总结。

总结

关于install:

  1. pip install -r requirements.txt 之前先看一下他的要求,会发现里面有的用了本地链接。这种要删掉。
  2. 同时如果requirements.txt 里面都是明确指定了版本号,即用的==而非>=, 也要慎重。可能的话,先从requirements.txt里面删掉自己已经安装过的软件。
  3. 尽量不要动cuda,跟硬件和驱动都有关,如果不适配的话动torch。
  4. torch也不要直接用reuqirements安装,可能会导致和cuda版本不匹配。

关于图形界面显示

如果出现

vtkXOpenGLRenderWindow.:448 ERR| vtkXOpenGLRenderWindow (0x93811700): bad X server connection. DISPLAY=

其中DISPLAY是要配的环境变量,指向远程显示客户端的ip地址。
这个报错是因为,代码想显示图形界面,但你的linux系统只有命令行,他想从X server机制显示界面在别处,但这个X server连接不太行。网上有一些使用Xming等工具配置的教程,挺简单的,但不知道是不是因为我是教育网,我没配成功。我选择直接注释掉可视化代码,把结果保存

关于修改代码

先开始我在AIStation的jupyter book直接修改代码,一直不行,最后在pycharm里面修改才生效。
后来发现是因为我的工程根目录不知道啥时候套了一层,我应该修改RfDNet/demo.py (删掉可视化部分),但改成了RfDNet/RfDNet/demo.py。 而运行的一直是前者,所以表现为咋改代码都不生效。

过程

过程很心酸。
先开始用windows试的,最后一直卡在> distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”
装了无数东西都没用。

后来还是决定改linux。

主要挫折是一开始想配成和作者完全一样的环境,就要改cuda,改半天驱动好像有点问题。最后放弃了。

重点是,requirements.txt里面规定了所有包的精确版本,但pointNet这个依赖里是需要pytorch>1.4.

所以我最后的做法是找了一个已有的torch符合要求,且cuda也配好了的电脑进行。后面只用装其他包即可。

在torch和cuda配好的情况下,基本只需要以下步骤:
0. 测试一下torch和cuda配好没有:

import torch
print(torch.__version__)  # >=1.4就行
print(torch.cuda.is_available()) # 为true即可

这时候直接执行demo那行命令:

python main.py --config configs/config_files/ISCNet_test.yaml --mode demo --demo_path demo/inputs/scene0549_00.off

应该会说缺pointNet。

ModuleNotFoundError: No module named ‘pointnet2_ops’

  1. 安装pointNet:
    cd external/pointnet2_ops_lib
    pip install .

  2. 这时候可能会说却别的包,比如trimesh。由于他的包很多,最好还是一气儿都安装了。
    我本人把requirements.txt里面的本地路径的删了,所有版本号都删了。在根目录RfD里面测试
    pip install -r requirements.txt
    说mkl不行。最后我把requirements.txt里面带mkl都删了,再试就行了。

  3. 下一个报错是
    RuntimeError: Ninja is required to load C++ extensions

百度得到解决方案为:

wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip
unzip ninja-linux.zip -d /usr/local/bin/
update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force
  1. 下一个报错:

Traceback (most recent call last):
File “main.py”, line 37, in
import demo
File “/li_wei/yuqiao/point_cloud/RfDNet/demo.py”, line 19, in
import vtk
File “/usr/local/lib/python3.6/dist-packages/vtk.py”, line 30, in
all_m = importlib.import_module(‘vtkmodules.all’)
File “/usr/lib/python3.6/importlib/init.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “/usr/local/lib/python3.6/dist-packages/vtkmodules/all.py”, line 8, in
from .vtkWebCore import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

百度得到解决方案:
apt-get update ##[edited]
apt-get install ffmpeg libsm6 libxext6 -y

  1. 最后一个报错:

vtkXOpenGLRenderWindow.:448 ERR| vtkXOpenGLRenderWindow (0x93811700): bad X server connection. DISPLAY=

如上文所述,原因是我的服务器之有命令行,但代码想显示图形界面。这个X server我想配到windows没成功,于是就注释掉可视化的代码。也就是demo.py的最后一句:

#visualize(output_dir, offline=False)

大功告成!

同时我还在save_visualization里面输出了一下保存路径:

    '''Dump boxes'''
    if np.sum(objectness_prob > DUMP_CONF_THRESH) > 0:
        if len(box_params) > 0:
            save_path = os.path.join(output_dir, '%06d_pred_confident_nms_bbox.npz' % (batch_id))
            np.savez(save_path,
                     obbs=box_params[np.logical_and(objectness_prob > DUMP_CONF_THRESH, pred_mask[batch_id, :] == 1), :],
                     proposal_map=BATCH_PROPOSAL_IDs)
            print(save_path) # 在这里输出

然后去看结果:
有一个png文件和一些ply文件:
在这里插入图片描述

在这里插入图片描述

requirements.txt

我最后把requirements.txt删减成这样用的:
absl-py
cachetools
certifi
chardet
cycler
Cython
decorator
google-auth
google-auth-oauthlib
grpcio
idna
imageio
importlib-metadata
kiwisolver
llvmlite
Markdown
matplotlib

networkx
numba
numpy-quaternion
oauthlib
olefile
pandas
plyfile
protobuf
pyasn1
pyasn1-modules
PyMCubes
pyparsing
python-dateutil
pytz
PyWavelets
PyYAML
requests
requests-oauthlib
rsa
scikit-image
scipy
seaborn
Shapely
tensorboard
tensorboard-plugin-wit
tifffile
tqdm
trimesh
urllib3
vtk
Werkzeug
zipp

后续

后续有可能更新predict和train的情况

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:32:23  更:2021-09-12 13:33:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 2:56:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码