PoseDiffusion代码复现,初尝试(一)

在这里插入图片描述

相关文章代码下载
https://github.com/facebookresearch/PoseDiffusion/tree/main

https://github.com/cvg/Hierarchical-Localization/tree/master

https://github.com/cvg/LightGlue

conda环境

可以直接看下面更新版,一步到位

新建conda虚拟环境(Python 3.9, PyTorch 1.13, and CUDA 11.6.)

在这里插入图片描述
报错
在这里插入图片描述

更新pip,又报错
在这里插入图片描述

加镜像源,pip更新成功
在这里插入图片描述

后面安装还有出现,下载速度慢,或者报错HTTPConnectionPool。。。Read timed out 都可以尝试换源

-i https://pypi.tuna.tsinghua.edu.cn/simple

服务器上直接clone github 项目会报错,可以下载到本地再传上去
https://github.com/facebookresearch/PoseDiffusion/tree/main
https://github.com/cvg/Hierarchical-Localization/tree/master
https://github.com/cvg/LightGlue

安装Hloc

要先安装LightGlue,再安装Hloc

查看Hloc路径下的requirements.txt 文件
(防止服务器访问github报错,自己下载LightGlue 后安装,并把那行注释掉
在这里插入图片描述

安装 LightGlue

进入对应目录下(我这里出现了网络错误,尝试换源就好了)

python -m pip install -e .
或者
python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

安装成功
在这里插入图片描述

安装Hloc

进入对应目录Hierarchical-Localization下(我这里出现了网络错误,尝试换源就好了)

python -m pip install -e .
或者
python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

安装成功
在这里插入图片描述

运行demo

在这里插入图片描述
先下载模型,放进新建文件夹 (pose_diffusion/CKPT),根据自己的情况更改
进入demo.py 的路径下,运行

python demo.py image_folder=“samples/apple” ckpt=“CKPT”

报错OSError: libcufft.so.10: cannot open shared object file: No such file or directory
在这里插入图片描述
都到这一步,以为要成功了,才发现torch和cuda-toolkit版本不对应
在这里插入图片描述
直接再下载一次codatoolkit=11.6也不行,算了,从头再来吧

更新版(从头开始)

新建conda虚拟环境(更新代码,一键配置)

直接进入对应文件夹,

source setup.sh

在这里插入图片描述

结束后,再接上面目录的安装Hloc

运行demo

可以开始尝试运行demo.py了,先根据上面下载运行demo

报错
在这里插入图片描述

尝试把VPN关掉,还是不行

尝试手动从github上,下载对应文件,根据提示放在对应位置

.cache/torch/hub/facebookresearch_dino_main

输入命令

python demo.py image_folder="samples/apple" ckpt="CKPT/co3d_model_Apr16.pth"

报错
ModuleNotFoundError: No module named ‘SuperGluePretrainedNetwork.models’
发现下载下来的third_party文件夹是空的,单独下载放进去
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5c7503a0ddfa424a8fcac81addaf6569.png

终于!!!! 开始训练了!!!
看见进度条也太让人开心了
在这里插入图片描述
好的,又报错了,visdom连接错误
[visdom][INFO] - Socket refused connection, running socketless
在这里插入图片描述
输入代码查看visdom是否打开

python -m visdom.server

出现这个结果等待很长时间this may take a little while,最后还是出错
在这里插入图片描述

解决:找到visom安装的文件夹server.py,我的在anaconda3/envs/Posediffusion/lib/python3.9/site-packages/visdom/server/run_server.py,注释掉这一行

在这里插入图片描述
结果:visdom能打开了
在这里插入图片描述
解决:
再把demo.py文件里的这个部分注释掉
在这里插入图片描述

结果:不再报错,即demo正常运行结束

在这里插入图片描述

  • 29
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一维 ResNet 的 PyTorch 代码可以如下实: ```python import torch import torch.nn as nn # 定义基本残差块 class ResidualBlock(nn.Module): def __init__(self, in_channels, out_channels, stride=1): super(ResidualBlock, self).__init__() self.conv1 = nn.Conv1d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1) self.bn1 = nn.BatchNorm1d(out_channels) self.relu = nn.ReLU(inplace=True) self.conv2 = nn.Conv1d(out_channels, out_channels, kernel_size=3, stride=1, padding=1) self.bn2 = nn.BatchNorm1d(out_channels) self.stride = stride def forward(self, x): identity = x out = self.conv1(x) out = self.bn1(out) out = self.relu(out) out = self.conv2(out) out = self.bn2(out) if self.stride != 1 or identity.shape[1] != out.shape[1]: identity = nn.Conv1d(identity.shape[1], out.shape[1], kernel_size=1, stride=self.stride)(identity) out += identity out = self.relu(out) return out # 定义一维 ResNet class ResNet(nn.Module): def __init__(self, block, layers, num_classes=1000): super(ResNet, self).__init__() self.in_channels = 64 self.conv1 = nn.Conv1d(3, 64, kernel_size=7, stride=2, padding=3) self.bn1 = nn.BatchNorm1d(64) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool1d(kernel_size=3, stride=2, padding=1) self.layer1 = self.make_layer(block, 64, layers[0]) self.layer2 = self.make_layer(block, 128, layers[1], stride=2) self.layer3 = self.make_layer(block, 256, layers[2], stride=2) self.layer4 = self.make_layer(block, 512, layers[3], stride=2) self.avgpool = nn.AdaptiveAvgPool1d(1) self.fc = nn.Linear(512, num_classes) def make_layer(self, block, out_channels, blocks, stride=1): layers = [] layers.append(block(self.in_channels, out_channels, stride)) self.in_channels = out_channels for _ in range(1, blocks): layers.append(block(out_channels, out_channels)) return nn.Sequential(*layers) def forward(self, x): out = self.conv1(x) out = self.bn1(out) out = self.relu(out) out = self.maxpool(out) out = self.layer1(out) out = self.layer2(out) out = self.layer3(out) out = self.layer4(out) out = self.avgpool(out) out = torch.flatten(out, 1) out = self.fc(out) return out # 创建一维 ResNet 模型 model = ResNet(ResidualBlock, [2, 2, 2, 2]) # 输出模型结构 print(model) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值