visual studio code python环境配置_visual-pushing-grasping环境配置及复现
0. 电脑硬件配置
ThinkpadE580-不带独立显卡,这款电脑比较坑,有些包就是安装不上去,比Thinkpad的T系列差多了(小吐一下),VPG的github地址贴一下
andyzeng/visual-pushing-graspinggithub.com
作者代码可在CPU上直接跑,前提安装的torch和torchvision与作者一致,这样速度太慢,约150s一个循环。如果在GPU上跑,就要安装高版本的torch,因为GPU和cuda版本相关,cuda又和torch版本有一定关联
1. Pytorch安装
- 安装Anaconda3,可去清华镜像源下载.sh文件安装
Tsinghua Open Source Mirrormirrors.tuna.tsinghua.edu.cn
Tsinghua Open Source Mirror
Tsinghua Open Source Mirrormirrors.tuna.tsinghua.edu.cn
bash anaconda文件名.sh
使用如下命令可以将清华源添加到Anaconda仓库
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 --set show_channel_urls yes
2. 然后使用conda创建python3.6的环境,vpg为环境名字
conda creat -n vpg python=3.6
3. 安装pytorch,原文的pytorch版本太老,后来作者更新了安装代码,但是不建议使用,因为国内使用外网是一大限制,建议使用下面的代码安装:
pip --default-timeout=3600 install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torchvision
如果要安装特定torch版本,或者采用Win或OS系统,可以参见官网这篇文章(包括cuda版本下的安装)
PyTorchs0pytorch0org.icopy.site
使用上述办法安装的torch1.4.0,torchvision0.5.0(根据安装时安装源的版本确定的)
1.1 补充内容:pip安装的几个知识点,虽然没使用,但是直觉告诉我应该可以用
- 将清华源设为 pip 默认源,如果报错,升级pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepip install pip -U #升级pip#安装示例
pip install torch===1.3.0 torchvision===0.4.1 -f https://download.pytorch.org/whl/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple
- 解决报错 Could not find a version that satisfies the requirement torch
使用如下镜像网站下载,可以先打开看看有没有要安装的包
http://pypi.doubanio.com/simple/pypi.doubanio.com
安装的命令行如下:
pip install 安装包名字 -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
1.2 参考链接:
Could not find a version that satisfies the requirement tensorflow问题汇总+解决!!!
通过清华镜像源加速下载pytorch--(pip版本)_人工智能_WannaSeaU的博客-CSDN博客
2. 其它包安装
pip --default-timeout=3600 install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy scipy opencv-python matplotlib
3. 代码部分流程-training模式
- 运行main()参数 --is_sim --push_rewards --experience_replay --explore_rate_decay --save_visualizations
- 重启仿真器 self.restart_sim()
- 设置虚拟相机 self.setup_sim_camera()
- 向仿真环境添加10个物体 self.add_objects() 通过函数vrep.simxCallScriptFunction放置物体,其中参数位置和姿态都是随机的
- 初始化训练 trainer = Trainer(method, push_rewards.....
- 创建保存数据的目录 logger
- 检查仿真环境是否正常 if is_sim: robot.check_sim()
- 获取相机图像 get_camera_data()
- 得到heightmap utils.get_heightmap()
- 保存images和heightmap logger.save_images/heightmap()
- 对heightmap应用2x scale
- 将经过旋转后的color和depth图像变换后送入定义的推和抓的网络,得到记录16次旋转的output_prob, interm_feat
- 检测两幅图像变化
- 计算训练labels,然后后向传播 trainer.backprop
- 对经验回放采样
- 保存模型 snapshot
- 同步动作线程和训练线程
4. 疑问
- 利用作者训练的模型测试,无效的pushing太多、抓取点和方位都不是很理想、即便物体分的很开的时候也不能有效抓取
- 纯CPU运行,推和抓的准确性相比GPU会高很多,这是否跟densenet网络前加with torch.no_grad()有关?
- 随机种子作用域?Pushing位置计算原理?
- 抓取物体点是以整体物体为单位确定吗?
- 推的位置误差太大,且有些抓取位置计算也不对,并没有附着到物体附近
- 自己训练保存的模型参数是那几个变量?
5. 软硬件调试问题
问题1:加载与训练模型时key值不匹配 Missing key(s) in state_dict:...,这是由于Pytorch版本升级带来的问题,报错如下图
问题原因:版本升级带来的问题,报错位置norm.1跟norm1的区别,具体解决办法如下:
import re...if args.resume:print("Loading checkpoint from '{}'".format(args.resume))checkpoint = torch.load(args.resume)#modify:# '.'s are no longer allowed in module names, but pervious _DenseLayer# has keys 'norm.1', 'relu.1', 'conv.1', 'norm.2', 'relu.2', 'conv.2'.# They are also in the checkpoints in model_urls. # This pattern is used to find such keys.pattern = re.compile(r'^(.*denselayerd+.(?:norm|relu|conv)).((?:[12]).(?:weight|bias|running_mean|running_var))$')state_dict = checkpoint['state_dict']for key in list(state_dict.keys()):res = pattern.match(key)if res:new_key = res.group(1) + res.group(2)state_dict[new_key] = state_dict[key]del state_dict[key]model.load_state_dict(state_dict)#model.load_state_dict(checkpoint['state_dict'])start_epoch = checkpoint['epoch']
参考链接:
https://github.com/KaiyangZhou/deep-person-reid/issues/23
https://github.com/pytorch/vision/blob/50b2f910490a731c4cd50db5813b291860f02237/torchvision/models/densenet.py#L28
Missing keys的另外一个原因:保存模型使用了nn.DataParallel导致的,解决办法如下:
第二种j解决办法的代码示例:参考链接
[solved] KeyError: 'unexpected key "module.encoder.embedding.weight" in state_dict'
# original saved file with DataParallel
state_dict = torch.load('myfile.pth.tar')# create new OrderedDict that does not contain `module.`
from collections import OrderedDict
new_state_dict = OrderedDict()
for k, v in state_dict.items():name = k[7:] # remove `module.`new_state_dict[name] = v# load params
model.load_state_dict(new_state_dict)
这个方法有网友整理了更详细的,链接如下
https://blog.csdn.net/qq_32998593/article/details/89343507
问题2:更新后,现在网上下载代码已不再适用torch0.3.1版本(已增加with torch.no_grad)
问题3:robot文件中的代码 async=False会报错,作者最新版本的代码更改为 asynch=False后报错就消失了,报错如图所示:
问题4:内存不够
报错 RuntimeError: $ Torch: not enough memory: you tried to allocate 0GB. Buy new RAM! at /opt/conda/conda-bld/pytorch_1523244252089/work/torch/lib/TH/THGeneral.c:253
问题5:双GPU报错
RuntimeError: Expected tensor for argument #1 'input' to have the same device as tensor for argument #2 'weight'; but device 0 does not equal 1 (while checking arguments for cudnn_convolution)
暂时只使用一个GPU解决了本问题
问题6:配置Intel Realsense D435i 相机
安装librealsense和realsense-ros包,这两个安装目录及方法参照google教程, 注意两者版本的匹配问题,版本匹配目录见个人硬盘《Intel realsense设备驱动及ROS包版本匹配目录》
问题7:pytorch版本升级后需修改地方(作者的代码torch版本0.3.0较低)
- 没有了Variable的概念
- 类似numpy().[0]的地方要修改
- with torch.no_grad()设置包含求解的densenet网络,会大大提高计算时间,不至于内存溢出;
visual studio code python环境配置_visual-pushing-grasping环境配置及复现相关推荐
- visual studio code python插件下载_visual studio code 的必装推荐插件plugin, vscode, vsc
An Old Hope Theme (theme, 推荐,且推荐它的 classic theme,安装后在颜色选项里选择,该插件的定制见文末) Cobalt2 (theme) Drac ...
- visual studio code Python终端运行_VS Code 6 月 Python 扩展更新
优质文章,第一时间送达! 微软发布了 6 月的 Visual Studio Code Python 扩展更新,此版本除了解决 53 个问题外,还开发了新功能,例如逐行运行和启动页面. 逐行运行(Run ...
- vs安装 c语言编译环境,Visual Studio Code安装与C/C++开发调试环境搭建
目录 简介 VSCode安装 VSCode语言设置 安装开发套件 构建C/C++编译环境 安装Clang 安装MinGW VSCode工程配置 launch.json tasks.json 测试 简介 ...
- vscode 离线安装python插件_vscode for Python插件下载-Visual Studio Code Python插件下载0.9.1 官方版-西西软件下载...
Visual Studio Code免费编程工具可以进行python开发学习,当然Python本身的安装也是必须的,打开VisualStudioCode,按下Ctrl+P打开命令行,然后输入ext i ...
- visual studio code Python终端运行_黄哥Python:VS Code 10个Python 插件
转载自 https://medium.com/issuehunt/10-visual-studio-code-extensions-for-python-development-de0be51bbee ...
- Win7 下使用 Visual Studio Code 编写运行 C 和 C++(环境搭建及使用方法)
系统环境:Win7 64bit 以下给出搭建步骤,每一步更细致的步骤,请查看下方链接: 第一步:下载安装编译器 MinGW-w64 (使用离线包似乎更可靠): 第二步:下载安装 Visual Stud ...
- Visual Studio Code (VSCode) 之 C/C++ 调试配置详解
准备 默认情况下,VSCode仅仅内置了对node.js运行时的调试支持,只可以直接调试JavaScript.TypeScript和任何其他翻译为JavaScript的语言.其他语言的调试支持,都 ...
- visual studio code Python终端运行_微软常用运行库合集32/64位只需一键全部安装
微软常用运行库合集32/64位这些运行库都是采用Microsoft Visual Studio 20XX编写的软件必须使用的公用DLL运行库,相当于程序的字典文件:只需要一键全部安装,堪称装机必备神器 ...
- qstudio c语言中文网,再整理:Visual Studio Code(vscode)下的通用C语言环境搭建
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 主要流程: 1.vscode的下载与简单配置 2.MinGw的下载与安装 3.配置系统环境变量 4 ...
最新文章
- 【笔记】numpy使用详解 matplotlib绘图
- bzoj 3055礼物运送 floyed + 状压DP
- 如何导入数据模板到MVC
- 资金流学习 - 选股逻辑
- vue-cli构建的项目手动添加eslint配置
- note_maven的基本使用
- java中的四个指令_JAVA命令学习系列(四) ---- jstat
- 学习Leader选举算法
- pcep协议什么意思_SDN学习笔记
- 华为物联网操作系统 LiteOS
- 腾讯云主机SSH连接不上如何解决
- 入手评测 联想小新PRO14,华硕灵耀14s和联想YOGA14s选哪个
- 报表工具使用教程-FineReport决策报表导出Plus
- 聚合广告SDK API
- 第九章第八题(Fan类)(Fan class)
- 数据结构与算法(七)—— 散列表结构及其实现和应用
- 数电三:编码器和译码器
- /MD与/MT、/MTD与/MDD的区别
- 面渣逆袭:Spring三十五问,四万字+五十图详解 。不要错过
- 论文文献引用规范和标准(国标GBT7714)@endnote国标样式@citation交叉引用编号