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

文章目录

  • 前言
  • 一、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 copyfilecopyfile(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 torchfrom src import model
from src import util
from src.body import Body
from src.hand import Handbody_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 handhands_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'):breakcap.release()
cv2.destroyAllWindows()

在这里插入图片描述

四、运行!

输入

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Blender云渲染的好处是什么?

​Blender是一款功能强大的开源3D创作软件,用于包括建模、动画、仿真、渲染、合成和视频编辑在内的多种应用。然而,Blender的渲染过程有时可能非常耗费资源,特别是处理复杂的3D场景时。作为CG行业不可或缺的一部分,云渲染通过使用…

Excel下拉框多选

记录一下学会一个新的知识! 两种方式 第一种方式:先在表格里写好需要的值,再在数据关联里面直接引入。 1.新建excel表格,输入下拉框需要的值。 2.点击——数据>有效性 3.选择——序列 4.数据来源——框住刚才写好的数据——…

实现一个命令行解释器

1、初始化命令行解释器 在计算机系统中,操作系统内核是一个很大得到软件模块,用户不能直接去使用。因此计算机提供一个外壳shell,用户能够通过这个外壳执行各种应用程序,从而完成操作系统各种功能。 shell:命令解释器…

51单片机——LED点阵屏

1、点阵屏简介 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等 LED点阵屏分类 按颜色:单色、双色、全彩 …

【202408最新】Anaconda+VSCode+CUDA+Pytorch安装配置保姆级教程

最近新换了电脑,又开始从头配置代码环境,到处看教程真的一个头两个大,干脆自己整理了一下,方便以后一站式重装。也提供给大家参考。 1.Anaconda下载安装 Anaconda和Python是替代品(也不是),下…

浅析WebRTC技术在智慧园区视频管理场景中的应用

随着科技的飞速发展,智慧园区作为城市智慧化的重要组成部分,正逐步成为现代化管理的重要方向。智慧园区的建设不仅涉及硬件设施的智能化升级,还离不开高效的视频管理和实时通信技术。在这一背景下,WebRTC(Web Real-Tim…

兴业证券基于Apache DolphinScheduler的应用实践

文 / 兴业证券股份有限公司 刘洋 石良生 柳君 李致琪 本文来源于网络,如有侵权,请联系删除 任务调度平台,扮演着自动执行预设任务的重要角色,是业务开展过程中不可或缺的一环。随着业务规模的不断扩展,兴业证券每日…

【JavaWeb】Http请求与响应

文章目录 Http 请求与响应一、Http 请求格式1、请求行2、请求头3、请求体(post请求才有) 二、HttpServletRequest1、获取 请求行 信息2、获取 请求头 信息3、获取 请求参数 信息 三、Http 响应格式1、响应行2、响应头3、响应体(正文&#xff…

杨辉三角

题目 给定一个非负整数 numRows&#xff0c;生成杨辉三角的前 numRows 行。 在杨辉三角中&#xff0c;每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ]参考答案 class Solution { public:vector<vector<int>…

Centos 下载和 VM 虚拟机安装

1. Centos 下载 阿里云下载地址 centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 2. VM 中创建 Centos 虚拟机 2.1 先打开 VM 虚拟机&#xff0c;点击首页的创建新的虚拟机 2.2 选择自定义&#xff0c;然后点击下一步。 2.3 这里默认就好&#xff0c;继续选择下一…

JavaWeb学习——Maven高级使用学习

一、分模块设计与开发 1、分模块设计原因 Maven 的分模块设计主要有以下几个原因&#xff1a; 1. 模块化管理&#xff1a;在大型项目中&#xff0c;代码量通常会非常大&#xff0c;如果将所有的代码都放在一个模块中&#xff0c;会使得项目结构复杂&#xff0c;不利于代码的管…

大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

【安全科普】学完网络安全出去能做什么工作?

想要了解学完网络安全工程师就业班后&#xff0c;出去能做什么工作&#xff0c;这个时候会分甲方或是乙方&#xff0c;看个人更偏向哪个岗位。 甲方指的是政府、海关、税务机构、高校及其他国有银行、商业银行&#xff0c;以及移动运营商&#xff08;如中国移动、中国联通、中…

【前缀和算法】--- 进阶题目赏析

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey 本篇我们来赏析前缀和算法的进阶题目。 &#x1f3e0; 和可被K整除的子数组 &#x1f4cc; 题目解析 和可被k整除的子数组 &#x1f4cc; …

线性回归算法详解

目录 线性回归算法 线性回归方程 误差项分析 似然函数求解 线性回归求解 梯度下降算法 下山方向选择 梯度下降优化 梯度下降策略对比 学习率对结果的影响 代码实现 线性回归算法 线性回归是回归算法中最简单、实用的算法之一&#xff0c;在机器学习中很多知识点都是…

【网络】数据链路层协议——以太网,ARP协议

目录 1.局域网转发 2.MAC地址 2.1.什么是MAC地址 2.2.Mac地址的作用 2.3.MAC地址和IP地址的区别和联系 3.以太网协议 4.MTU&#xff0c;IP MTU&#xff0c;MSS 4.1.MTU 4.2. IP MTU 4.3. MSS 4.4. 区别及联系 5.局域网的数据碰撞 5.1.局域网内通信过程 5.2.数据碰…

宏集MIRO-L230工业路由器: 一站式全球联网解决方案

在日益互联的世界中&#xff0c;全球覆盖的稳定连接已成为业务成功的关键因素。宏集非常高兴地向您介绍我们的最新创新产品——MIRO-L230工业路由器&#xff0c;这是一款为现代企业量身定制的LTE路由器&#xff0c;为用户带来前所未有的稳定连接体验。 宏集MIRO-L230工业路由器…

墨兰:花语寓意、神秘传说与独特魅力全解析

在繁花似锦的植物世界中&#xff0c;墨兰宛如一位优雅的隐士&#xff0c;静静地散发着独特的魅力。它那婀娜的身姿和淡雅的芬芳&#xff0c;仿佛在诉说着一个个古老而神秘的故事。当我们凝视着墨兰&#xff0c;不禁会被它那独特的气质所吸引&#xff0c;想要探寻它背后隐藏的花…

电容的分类

电容作为电子产品中不可或缺的元件&#xff0c;其种类繁多&#xff0c;各具特色。以下是电容的主要分类、作用及优缺点概述&#xff1a; 一、电容的分类 电容的分类方式多样&#xff0c;常见的分类方式包括按结构、用途、电解质类型及制造材料等。 按结构分类&#xff1a; 固…

C++编程-递归算法1

目录 先言 关于递归算法 例题一 题目描述 算法分析 标准程序 代码分析 例题二 题目描述 算法分析 标准程序 例题三 题目描述 算法分析 标准程序 代码分析 例题四 题目描述 标准程序 代码分析 后言 先言 从今天开始&#xff0c;我们将新的算法——递归&…