Kaggle克隆github项目+文件操作+Kaggle常见操作问题解决方案——一文搞定,以openpose姿态估计项目为例

news2024/11/13 10:18:50

文章目录

  • 前言
  • 一、Kaggle克隆仓库
    • 1、克隆项目
    • 2、查看目录
  • 二、安装依赖
  • 三、文件的上传、复制、转移操作
    • 1.上传.pth文件到input目录
    • 2、将权重文件从input目录转移到工作目录
  • 三、修改工作目录里的文件内容
    • 1、修改demo_camera.py内容
  • 四、运行!


前言

想跑一些深度学习的项目,但是电脑没有显卡,遂看向云服务器Kaggle,这里可以每周免费使用30h的GPU算力,效果确实不错。
本人之前尝试过google colab,但是

  • 时不时就要你人机验证
  • 连接容易断开
  • 文件操作有些麻烦
  • 还要挂载google drive云盘
  • 还要魔法

用过Kaggle之后,不得不说是真香,它是不需要魔法的。
但是刚上手Kaggle的DPers可能还不是很熟悉一些基本命令操作,那么这篇文章就总结了一些常见操作,常见问题,希望对你有所帮助。


一、Kaggle克隆仓库

1、克隆项目

一般在kaggle的notebook里面输入控制台类的代码,前面要加上!当然也有特例,我们后面再说

! git init
! git clone https://github.com/Hzzone/pytorch-openpose.git

2、查看目录

克隆下来的项目,放在了output下,目录为kaggle/working
在这里插入图片描述
注意kaggle/working也是我们默认的工作目录,你可以输入下述代码来验证

import os
os.getcwd()

二、安装依赖

! pip install -r /kaggle/working/pytorch-openpose/requirements.txt

这里要输入requirements.txt的完整路径,可以在右侧直接复制
在这里插入图片描述

三、文件的上传、复制、转移操作

github上这个姿态估计的项目需要权重文件,但是仓库里没有直接放进去,通过网盘给到了.pth权重文件。那么现在我们应该如何将电脑中的.pth文件上传到工作目录里呢

1.上传.pth文件到input目录

比较简单,点击upload->New Dataset->选择本地文件直接上传,
一个项目可以包含多个datasets,我这里新建了2个,并分别上传了一个文件,下面是目录结构:
在这里插入图片描述

2、将权重文件从input目录转移到工作目录

将权重文件从input目录转移到output下的kaggle/working工作目录

# import module we'll need to import our custom module
from shutil import copyfile
 
copyfile(src = "/kaggle/input/hand-pose-model-pth/hand_pose_model.pth", dst = "/kaggle/working/pytorch-openpose/model/hand_pose_model.pth")
copyfile(src = "/kaggle/input/hand-pose-model-pth/body_pose_model.pth", dst = "/kaggle/working/pytorch-openpose/model/body_pose_model.pth")

注意,目标目录下的.pth文件不用提前建立,它会自动生成


三、修改工作目录里的文件内容

按理说,我现在直接可以输入! python /kaggle/working/pytorch-openpose/demo_camera.py
进行demo测试了,但是会报错找不到权重文件,因为人家项目里写的是相对路径,但是说实话,相对路径在kaggle的notebook执行的时候,会识别不出来
在这里插入图片描述

所以最保险的做法:
全部换成绝对路径
这时要修改demo_camera.py的文件内容,如何修改呢?

1、修改demo_camera.py内容

现在的工作路径是
在这里插入图片描述
我们cd 到demo_camera.py文件所在文件夹下
在这里插入图片描述
在本地修改demo_camera.py,修改为绝对路径
在这里插入图片描述
将这个文件里所有内容复制到%%writefile demo_camera.py下面,什么意思?就是相当于把demo_camera.py的内容进行了覆盖。

%%writefile demo_camera.py
import cv2
import matplotlib.pyplot as plt
import copy
import numpy as np
import torch

from src import model
from src import util
from src.body import Body
from src.hand import Hand

body_estimation = Body('/kaggle/working/pytorch-openpose/model/body_pose_model.pth')
hand_estimation = Hand('/kaggle/working/pytorch-openpose/model/hand_pose_model.pth')

print(f"Torch device: {torch.cuda.get_device_name()}")

cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)
while True:
    ret, oriImg = cap.read()
    candidate, subset = body_estimation(oriImg)
    canvas = copy.deepcopy(oriImg)
    canvas = util.draw_bodypose(canvas, candidate, subset)

    # detect hand
    hands_list = util.handDetect(candidate, subset, oriImg)

    all_hand_peaks = []
    for x, y, w, is_left in hands_list:
        peaks = hand_estimation(oriImg[y:y+w, x:x+w, :])
        peaks[:, 0] = np.where(peaks[:, 0]==0, peaks[:, 0], peaks[:, 0]+x)
        peaks[:, 1] = np.where(peaks[:, 1]==0, peaks[:, 1], peaks[:, 1]+y)
        all_hand_peaks.append(peaks)

    canvas = util.draw_handpose(canvas, all_hand_peaks)

    cv2.imshow('demo', canvas)#一个窗口用以显示原视频
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()


在这里插入图片描述

四、运行!

输入

! python /kaggle/working/pytorch-openpose/demo_camera.py

当然,你可能遇到其他代码上的bug,这就不是kaggle平台的问题啦
这就需要你擦亮你的眼睛认认真真debug啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全】条件竞争绕过电子邮件验证

未经许可,不得转载。 文章目录 正文正文 目标:xxx.com 使用电子邮件注册该网站并登录。接着,进入帐户设置,进入更改电子邮件功能: 请求包如下: 接着,发送两个相同的请求包到repeater,第一个中添加攻击者邮件: 第二个中添加正常的邮件: 创建组,以便能够同时发送两个…

手把手教你如果安装激活CleanMyMac X 4.15.6中文破解版

CleanMyMac X 4.15.6中文破解版可以为Mac腾出空间,软件已经更新到CleanMyMac X 4.15.6中文版支持最新版Macos 10.14系统。CleanMyMac X 4.15.6中文破解版具有一系列巧妙的新功能,可让您安全,智能地扫描和清理整个系统,删除大量未使…

NeRF: Representing Scenes asNeural Radiance Fields for View Synthesis 论文解读

目录 一、导言 二、NeRF 1、渲染和反渲染 2、NeRF的基本原理 3、采样点 4、位置编码 5、NeRF网络结构 6、体渲染 三、分层采样 1、均匀采样 2、基于σ的采样 四、损失函数 一、导言 该论文来自于ECCV2020,主要提到一种NeRF的方法来合成复杂场景下的新视…

创建 AD9361 的 vivado 工程,纯FPGA配置,不使用ARM程序

前言 AD9361 的配置程序,如果使用官方的,就必须用ps进行配置,复杂不好使,如果直接使用FPGA配置,将会特别的简单。 配置软件 创建一份完整的寄存器配置表 //*******************************************************…

续:docker 仓库数据传输加密

上一个实验:非加密的形式在企业中是不被允许的。 示例:【为Registry 提供加密传输】 因为传输也是https,所以与ssh一样的加密。 ## 这种方式就不用写这个了。 [rootdocker ~]# cat /etc/docker/daemon.json #{ # "insecure-registrie…

GoodSync Business - 企业级服务器同步与备份工具

现在越来越多公司会搭建服务器,或自建文件共享中心。那么如何才能实现对这些终端的高效管理、安全备份,以保障企业数据的安全呢? GoodSync Business 就是一款企业服务器同步与备份工具,适用于 Win / Mac 工作站,以及 …

C语言程序设计

日落有个小商店&#xff0c;贩卖着橘黄色的温柔。 7.关系操作符 > > < < ! (用于测试“不相等”) &#xff08;用于测试“相等”&#xff0c;但是不是所有的对象都可以用该符号来比较相不相等&#xff09; eg. int main ( ) { if ("abc"&q…

【AI大模型】基于docker部署向量数据库Milvus和可视化工具Attu详解步骤

&#x1f680; 作者 &#xff1a;“大数据小禅” &#x1f680; 文章简介 &#xff1a;本专栏后续将持续更新大模型相关文章&#xff0c;从开发到微调到应用&#xff0c;需要下载好的模型包可私。 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 目…

【王树森】Few-Shot Learning (2/3): Siamese Network 孪生网络(个人向笔记)

Learning Pairwise Similarity Scores Training Data 训练集有很多个类别的图片&#xff0c;每个类别的图片都有标注 Positive Sample&#xff1a;我们需要正样本来告诉神经网路什么东西是同一类 Negative Sample&#xff1a;负样本可以告诉神经网路事物之间的区别 我们用…

【笔记】数据结构04

文章目录 稀疏矩阵压缩存储三元组表示稀疏矩阵转三元组 栈的应用前缀表达式前缀表达式求值 中缀表达式后缀表达式 稀疏矩阵内容参考 强连通文章 稀疏矩阵压缩存储三元组表示 将非零元素所在的行、列以及它的值构成一个三元组&#xff08;i,j,v&#xff09;&#xff0c;然后再…

推荐 3 个好用的桌面管理工具,实用强大,不要错过

BitDock BitDock是一款运行在Windows系统中的桌面停靠栏工具&#xff0c;也被称为比特工具栏。这款软件模仿了Mac系统的Dock栏设计&#xff0c;旨在为用户提供一个简洁、高效且极具美感的桌面环境。BitDock不仅具有个性化的外观&#xff0c;还内置了多种实用功能&#xff0c;如…

Java后端 - 常见BUG及其处理策略(持续更新中~)

Bug 收集与总结 本文记录的是 本人SpringBoot 后端项目使用和运行代码时所遇到的各种问题&#xff0c;全部都已解决&#xff0c;欢迎在评论区补充你遇到的 Bug 哦&#xff01;仅以本文记录学习社区项目时&#xff0c;所遇到的奇奇怪怪的 bug&#xff0c;以及一些很愚蠢的错误&…

从马斯洛需求层次理论谈职场激励

马斯洛需求层次理论是一个广为人知的心理学概念&#xff0c;它是由美国心理学家亚伯拉罕马斯洛&#xff08;Abraham Maslow&#xff09;于1943年提出&#xff0c;常被描述为一个5层的金字塔模型&#xff0c;反映了人类不同需求层级和依赖关系。马斯洛认为人类只有在低层级需求得…

在 VS Code 中使用 Git 源代码管理【Mac 版】

文章目录 一、Git 使用文档二、使用示例1、复制远程仓库地址2、查看当前所在的分支2.1、界面查看2.2、终端查看 3、修改/新增文件4、显示增改的详细内容5、添加暂存区6、查看/取消暂存的更改7、提交本地代码库8、待提交文件9、推送到远程仓库10、验证11、查看推送记录11.1、关于…

六. 部署分类器-trt-engine-explorer

目录 前言0. 简述1. 案例运行2. 补充说明3. engine分析结语下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习课程第六章—部署分类器&#xff0c;一起来学习 trt-engine…

Linux日志-secure日志

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux进阶部分又分了很多小的部分,我们刚讲完了Linux基础软件&#xff0c;下面是Linux日志。Linux 系统中的日志是记录系统活…

18041 分期还款(加强版)

### 自查思路 1. 检查输入数据的处理是否正确。 2. 检查判断条件 p < d * r 是否正确。 3. 确认公式计算和输出格式是否正确。 ### 伪代码 1. 读取输入的贷款金额、每月还款额和月利率。 2. 判断是否可以还清贷款&#xff1a; - 如果每月还款额小于贷款金额乘以月利率&a…

深度学习与大模型第2课:机器学习实战

文章目录 深度学习与大模型第2课&#xff1a;机器学习实战1. Iris鸢尾花数据集分类1.1 数据预处理1.2 模型训练与评估 2. 美国加州房价预测2.1 数据预处理2.2 模型训练与调优 3. 房价数据的回归分析3.1 数据预处理与建模 4. 时尚衣物识别:MNIST 数据集分类4.1 数据读取与可视化…

跑Boundary-Aware Feature Propagation遇到的问题

跑Boundary-Aware Feature Propagation遇到的坑 1、运行不报错&#xff0c;也不显示结果 从train.py代码第一行import开始添加&#xff0c;print&#xff08;“check1”&#xff09;&#xff0c;发现问题torch.encoding无法导入&#xff0c;反复地参考github源代码https://gith…

Axure RP9安装教程(Pro版)

[Axure RP 9.0下载链接]: https://ga90eobypbb.feishu.cn/docx/WKvldvZkMoKPnIx3Yl2cJhOBnqe 1.找到下载好的安装包&#xff0c;右键解压到“Axure RP 9.0”文件夹 2.双击打开解压出来的文件夹&#xff0c;选中”AxureRP-安装程序.exe“右键以管理员身份运行 3.点击"Nex…