首页 > 其他分享 >Cliport论文复现

Cliport论文复现

时间:2024-10-17 17:22:06浏览次数:8  
标签:install Cliport 代码 论文 cliport 复现 版本 pip cuda

写在前面

这里需要指出,论文原作者并未使用Anaconda创建虚拟环境运行代码,而我复现论文时使用的是Anaconda所创建的虚拟环境,因此本文适用于通过Anaconda使用论文代码的需求,使用其他途径或手段的本文仅供参考。

引言

cliport论文由于作者发布日期与我复现论文的时间相隔了几年,因此所提供的代码中有关更新第三方软件库等命令运行后会使得我们实际上得到的第三方库版本比论文作者的高,因此在配置环境的过程中需要考虑到作者的创作背景,尽量使用论文作者所处时期对应的第三方库的版本,因此安装第三方库时推荐指定具体的版本号进行下载安装,以避免依赖冲突的问题。本文在“问题记录”中记录了一些配置环境时会遇到的问题,并将解决办法附于描述之下。

下载Cliport项目文件:

git clone https://github.com/cliport/cliport.git

注:如果该代码运行后下载速度过慢,有两种解决方法:
1.(能打开cliport对应的github网页的):

  1. 点击“code”;再点击“download ZIP”;
  2. 下载完成后将cliport-main.zip文件解压到路径尽量简单并且有足够空间的位置;
  3. 最后将cliport-main文件夹的名字重命名为你喜欢的名字即可(比如cliport),当然也可以不改,只是我个人看着xxx-main的命名方式觉得别扭,非得把“main”给去了不可。

2.(有VPN的):首先说明一下,能打开cliport对应的github网页是第1种方法的前提,但是能打开下载ZIP也不一定快,只不过有些情况下会比直接在终端里执行上述代码的下载速度要快。

  1. 第2种方法是直接开VPN执行上述代码,或者开VPN后执行第1种方法。

注意:下载好的项目包中有一个requirement.txt文件,这个文件是提供给你论文作者代码环境中各第三方库的版本的,但是里面有关torch、torchvision以及torch_lightning的版本是按照论文作者的cuda版本设置的,我们自己的电脑显卡类型都不太一样,因此安装的cuda版本也会有所不同,所以在运行“pip install -r requirements.txt”这个代码前需要提前把上述三个库的版本改成适用于你电脑上cuda所对应的版本,具体版本请自行查阅,这里不多赘述。

创建虚拟环境:

conda create -n <此处填:自定义的虚拟环境名称>*(如:cliport)* python=3.8

激活虚拟环境:

Win系统(在终端执行):

activate <此处填:自定义的虚拟环境名称>*(如:cliport)*

Ubuntu系统(在终端执行):

conda activate <此处填:自定义的虚拟环境名称>*(如:cliport)*

进入到项目文件夹中:

cd <此处填:解压完cliport.zip后,生成的文件夹的下一级目录的路径>

安装各依赖第三方库:

pip install -r requirements.txt *(可加镜像源:-i https://pypi.tuna.tsinghua.edu.cn/simple)*

添加项目文件根目录路径:(这一步每次重启终端后都要运行,如果嫌这样太麻烦,Ubuntu系统的使用者可以将这条命令写入~/.bashrc中,如此每次重启终端后将自动执行该命令,而不需我们再手动输入)

export CLIPORT_ROOT=$(pwd)

之后的命令每一步都可能会报错,因此直接参看下面的问题记录,找到你该运行的代码,如遇问题运行How to solve中的代码即可。

问题记录

Question 1:pip install requirements.txt时,即使使用镜像源仍然大片飘红。

Reason: 这个问题的原因在于,pip的版本太高了,里面已经淘汰了一些过老的库,因此需要将pip的版本降下去,否则无法提供所需版本的第三方库。

How to solve:

pip install pip==24.0

Question 2:python setup.py develop报如下错误:

    ********************************************************************************
    Please avoid running ``setup.py`` and ``easy_install``.
    Instead, use pypa/build, pypa/installer or other
    standards-based tools.

    See https://github.com/pypa/setuptools/issues/917 for details.
    ********************************************************************************

Reason: 这个问题产生的原因是setuptools的版本太高了,这里把版本降一下再运行python setup.py develop就好了,但是再往后的代码会重新因为setuptools版本太低而报错,到时候再升上去。

How to solve:

pip install setuptools==41.0.0

Question 3:运行下列代码时报错:

python cliport/demos.py n=10 \
                        task=stack-block-pyramid-seq-seen-colors \
                        mode=test 

Reason: 上述代码运行失败无外乎有四种原因,下面一一进行描述。(注:建议在执行上述代码前提前将解决下列4个问题的代码运行一遍)

Subquestion1:报如下错误:

ModuleNotFoundError: No module named '_distutils_hack'。

Reason:这个问题就是前文提到的setuptools版本太低了,要在此处升上去。

How to solve:

pip install --upgrade setuptools

Subquestion2:报如下错误:

TypeError: Descriptors cannot be created directly.。

Reason:这个问题产生的原因是protobuf版本太高了,要降下来。

How to solve:(此处是通过linux命令行从清华源下载指定版本的protobuf,如果从pip下载第三方库时太慢,可以通过“pip install <此处填要下载的包名>(版本号有需要就在包名后用'=='+‘版本号’)-i <国内镜像源网址>”)

pip install protobuf==3.19.6 -i https://pypi.tuna.tsinghua.edu.cn/simple

Subquestion3:报如下错误:

AttributeError: module 'numpy' has no attribute 'float'。

Reason:这个问题是因为numpy在1.24版本后将np.float的书写格式改为了float64,所以为了仍使用‘float’的格式,需要保证numpy的版本在1.24以前,即numpy<1.24。

How to solve:

pip install numpy==1.23.5

Subquestion4:报如下错误:

packaging.version.InvalidVersion: Invalid version: '0.10.1,<0.11'。

Reason:这个问题也是packaging的版本太高导致的,因此解决办法还是降低第三方库的版本。

How to solve:

pip install packaging==21.3 -i https://pypi.tuna.tsinghua.edu.cn/simple/

Question 4:运行下述代码后,可视化界面中没有任何动态显示,停顿了5s左右就自己关闭了,同时终端显示内部进程退出(Internal exited)

python cliport/demos.py n=10 \
                    task=stack-block-pyramid-seq-seen-colors \
                    mode=test 

显示:

/home/sun/anaconda3/envs/cliport/lib/python3.8/site-packages/hydra/plugins/config_source.py:190: UserWarning: 
Missing @package directive config.yaml in file:///home/sun/cliport/cliport/cfg.
See https://hydra.cc/docs/next/upgrades/0.11_to_1.0/adding_a_package_directive
  warnings.warn(message=msg, category=UserWarning)
text argument:/home/sun/cliport/cliport/environments/assets/
Saving to: /home/sun/cliport/data/stack-block-pyramid-seq-seen-colors-test
Mode: test

Reason: 需要注意这只是一个警告,而不是错误,因此这个问题到底是否真的是个问题需要你继续执行下述代码:

python cliport/eval.py model_task=multi-language-conditioned \
                       eval_task=stack-block-pyramid-seq-seen-colors \
                       agent=cliport \
                       mode=test \
                       n_demos=10 \
                       train_demos=1000 \
                       exp_folder=cliport_quickstart \
                       checkpoint_type=test_best \
                       update_results=True \
                       disp=True

若执行该代码后仍然出现可视化界面不显示,同时几秒钟后自己关闭的情况,那么确实有错误,并且此时错误会显示到终端上。并且大概率是显卡和cuda版本不匹配,或者cuda跟pytorch的版本不匹配的问题。
1.我的显卡最高能下12.2版本的cuda,但是我下了11.0的(为了跟论文作者requirement.txt中pytorch、torchvision和torch_lightning版本相对应),结果会提示我的显卡有最低算力要求,所以我需要提高我的cuda版本。解决办法就是安装更新的cuda。
2.我的cuda版本和我安装的pytorch、torchvision和torch_lightning中的一个或多个库版本不匹配,因此需要检查一下版本对应关系,将安错版本的库指定正确的版本重新安装。

标签:install,Cliport,代码,论文,cliport,复现,版本,pip,cuda
From: https://www.cnblogs.com/john-mu-wanfeng/p/18472680

相关文章

  • 【开题报告】基于django+vue基于智能点击推荐的在线购物商城系统(论文+源码)计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代商业活动的重要组成部分。在线购物商城作为电子商务的核心平台,不仅为消费者提供了便捷、高效......
  • 【开题报告】基于django+vue社团管理系统(论文+源码)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今高校生活中,社团活动作为丰富学生课余生活、培养学生兴趣爱好的重要平台,其管理效率与透明度直接影响到学生的参与热情与社团的健康发......
  • 记一次复现实战去付费-虚拟定位App孙悟空
    这个APP需要通过直接去输入卡号,通过卡号付费实现虚拟定位的操作,同时虚拟定位的功能是在java层的静态代码块中实现的,所以直接去HOOK掉对应的检测卡密的过程就可以了分析:JEB实现反编译过程,通过搜索字符串('登录'),发现可以直接去查看到对应的函数位置publicvoidrun()......
  • java毕业设计-基于Springboot的教学资源共享平台【代码+论文+PPT】
    全文内容包括:1、采用技术;2、系统功能;3、系统截图;4、部分代码;5、配套内容。索取方式见文末微信号,欢迎关注收藏!一、采用技术语言:Java1.8框架:Springboot数据库:MySQL5.7、8.0开发工具:IntelliJIDEA旗舰版其他:Maven3.8以上二、系统功能成绩管理:记录和追踪学生课程成绩,便于......
  • python+flask框架的地震救灾小程序前台8(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景地震作为自然灾害之一,其突发性和破坏性给人类社会带来了巨大的生命和财产损失。当前,关于地震救灾的研究主要集中在地震预警技术、灾后救援......
  • python+flask框架的党建appapp8(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着信息技术的飞速发展,党建工作也逐渐向数字化、智能化方向转型。关于党建信息化的研究,现有研究主要以传统党建模式与信息技术的融合为主......
  • python+flask框架的代驾小程序设计与实现实现18(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着城市化进程的加速和交通安全意识的提升,代驾服务逐渐成为人们日常生活中不可或缺的一部分。特别是在饮酒后或长途驾驶疲劳时,代驾服务为......
  • python+flask框架的大学校园宿舍微信报修小程序小程序 38(开题+程序+论文) 计算机毕业
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着信息技术的飞速发展和智能手机的普及,微信作为国内最大的社交平台之一,其小程序功能已成为连接线上与线下的重要桥梁。在大学校园中,宿舍......
  • java毕业设计-基于Springboot的小型企业客户关系管理系统【代码+论文+PPT】
    全文内容包括:1、采用技术;2、系统功能;3、系统截图;4、部分代码;5、配套内容。索取方式见文末微信号,欢迎关注收藏!一、采用技术语言:Java1.8框架:Springboot数据库:MySQL5.7、8.0开发工具:IntelliJIDEA旗舰版其他:Maven3.8以上二、系统功能产品管理:集中维护产品信息,包括添加、......
  • python+flask框架的大学生创新实验室设备资产管理系统小程序端8(开题+程序+论文) 计算
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景在当前高等教育环境中,大学生创新实验室作为培养学生实践能力和创新思维的重要平台,其设备资产管理的高效性和准确性显得尤为重要。然而,现有......