kaggle 如何利用API下载数据集

该文章已生成可运行项目,

your_project/
├── kaggle/                  # Kaggle 专用目录
│   ├── input/               # 数据集(自动映射到 Kaggle Kernels 的 /kaggle/input)
│   └── working/             # 临时输出(映射到 Kaggle Kernels 的 /kaggle/working)
├── src/                     # 核心代码存放位置(重点!)
│   ├── utils/               # 工具函数
│   ├── models/              # 模型定义
│   ├── config.py            # 路径配置
│   └── main.py              # 主程序
├── notebooks/               # Jupyter Notebook 文件
├── requirements.txt         # 依赖库列表
└── README.md                # 项目说明

第一步API 密钥:        

        首先 上传kaggle官网生成得 API 密钥:  kaggle.json 文件。放到该代码同目录下,再运行一下代码。

'''
首先上传 kaggle.json 文件并设置 API 密钥
再运行此代码
'''
import os
import shutil

# 创建目标目录(如果不存在)
kaggle_dir = os.path.expanduser('~/.kaggle')
if not os.path.exists(kaggle_dir):
    os.makedirs(kaggle_dir)

# 检查当前目录下是否存在kaggle.json
src_file = 'kaggle.json'
if os.path.exists(src_file):
    # 移动文件并设置权限
    dst_file = os.path.join(kaggle_dir, 'kaggle.json')
    shutil.move(src_file, dst_file)
    os.chmod(dst_file, 0o600)  # Kaggle要求权限为600
    print("文件已成功移动并设置权限!")
else:
    print(f"错误:当前目录下未找到 {src_file},请确保文件存在。")

拉取笔记本

!pip install kaggle
try: 
    import kaggle
except: 
    !pip install kaggle
!kaggle kernels pull brendanartley/hgnet-v2-starter

 注:   只需要修改‘brendanartley/hgnet-v2-starter’,每个笔记本有api可以直接复制。

拉取数据 

注: 

         如果使用 kagglehub 下载,默认下载目录是你的主目录下的 ~/.cache/kagglehub/,必须修改

import os
os.environ["KAGGLEHUB_CACHE"] = "/usropt2190"#修改路径
#export KAGGLEHUB_CACHE=/your/custom/path

import kagglehub
import time

for i in range(3):
    try:
        kagglehub.dataset_download("egortrushin/open-wfi-test")
        break
    except Exception as e:
        print(f"下载失败,第{i+1}次重试,错误:{e}")
        time.sleep(5)

        只需要修改'''下载竞赛数据集''',就可以选择你的指定数据集。

        jupyter文件运行

总代码

只需要修改下载地址

'''
首先上传 kaggle.json 文件并设置 API 密钥
再运行此代码
'''
import os
import shutil
 
# 创建目标目录(如果不存在)
kaggle_dir = os.path.expanduser('~/.kaggle')
if not os.path.exists(kaggle_dir):
    os.makedirs(kaggle_dir)
 
# 检查当前目录下是否存在kaggle.json
src_file = 'kaggle.json'
if os.path.exists(src_file):
    # 移动文件并设置权限
    dst_file = os.path.join(kaggle_dir, 'kaggle.json')
    shutil.move(src_file, dst_file)
    os.chmod(dst_file, 0o600)  # Kaggle要求权限为600
    print("文件已成功移动并设置权限!")
else:
    print(f"错误:当前目录下未找到 {src_file},请确保文件存在。")
 
# 下载竞赛数据 -p 下载地址
!pip install kaggle
import kaggle
!kaggle competitions download -c make-data-count-finding-data-references -p ./kaggle

# 检查下载的文件
files = os.listdir('./kaggle')
print("目录内容:", files)

!pip install kaggle
import kaggle
!kaggle competitions download -c make-data-count-finding-data-references -p ./kaggle
 
# 检查下载的文件
files = os.listdir('./kaggle')
print("目录内容:", files)
 
 
zip_files = [f for f in files if f.endswith('.zip')]
zip_filename = zip_files[0]
zip_filename= zip_filename.rstrip('.zip')
zip_path = f"./kaggle/{zip_filename}"
import zipfile
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
    zip_ref.extractall(f"./kaggle/input/{zip_filename}")
# 删除原始压缩文件
os.remove(zip_path)
print(f"已删除原始压缩文件: {zip_path}")

数据集上传

!kaggle datasets init -p 地址

在将要上传的数据路径下生成一个dataset-metadata.json

{

  "title": "INSERT_TITLE_HERE",

  "id": "你的用户名字/INSERT_SLUG_HERE",

  "licenses": [

    {

      "name": "CC0-1.0"

    }

  ]

}

修改INSERT_TITLE_HERE和INSERT_SLUG_HERE

  1. 用户在搜索框输入关键字 ➜ 主要匹配 title 和 description
  2. 用户点击结果 ➜ 浏览器导航到 id 生成的URL
  3. 使用-不要_
!kaggle datasets init -p 地址
!kaggle datasets create -p 地址

模型下载

import os
from huggingface_hub import snapshot_download
snapshot_download(repo_id="Qwen/Qwen2.5-32B-Instruct-GPTQ-Int4",local_dir="./")
os.system("rm -r -f .cache")
# 安装ModelScope
!pip install modelscope

# SDK模型下载与保存
from modelscope import snapshot_download

# 指定保存路径(推荐使用绝对路径)
save_path = "/kaggle/working/Qwen3-30B"  # 示例路径,可根据需要修改

# 下载并保存模型
model_dir = snapshot_download(
    'tclf90/Qwen3-Coder-30B-A3B-Instruct-AWQ',
    cache_dir=save_path  # 关键参数:指定保存目录
)

print(f"模型已保存到: {model_dir}")

环境测测

输出路径

import os
notebook_name = os.getenv("JPY_NOTEBOOK_NAME", "")
notebook_path = os.path.join(os.getcwd(), notebook_name)
print("当前 Notebook 的路径:", notebook_path)

查看空间:df -h 

输出显卡图形 

 nvidia-smi
# 在Python环境中执行(适用于TensorFlow/PyTorch)
import torch, gc
if torch.cuda.is_available():
    torch.cuda.empty_cache()
    gc.collect()

 wandb

try: 
    import wandb
except: 
    !pip install --no-deps wandb -q

!wandb login apixxxxxxxxxxx

benchmark.py 

import torch

print('Pytorch version\t:', torch.__version__)
print('CUDA version\t:', torch.version.cuda)
print('GPU\t\t:',torch.cuda.get_device_name())
import inspect
from collections import defaultdict
import pandas as pd
from torch.utils import benchmark

pd.options.display.precision = 3

def var_dict(*args):
    callers_local_vars = inspect.currentframe().f_back.f_locals.items()
    return dict([(name, val) for name, val in callers_local_vars if val is arg][0]
                for arg in args)

def walltime(stmt, arg_dict, duration=3):
    return benchmark.Timer(stmt=stmt, globals=arg_dict).blocked_autorange(
        min_run_time=duration).median
        
matmul_tflops = defaultdict(lambda: {})
for n in [128, 512, 2048, 8192,8192*2]:
    for dtype in (torch.float32, torch.float16):
        a = torch.randn(n, n, dtype=dtype).cuda()
        b = torch.randn(n, n, dtype=dtype).cuda()
        t = walltime('a @ b', var_dict(a, b))
        matmul_tflops[f'n={n}'][dtype] = 2*n**3 / t / 1e12
        del a, b

print(pd.DataFrame(matmul_tflops))

hug镜像加速

import os

# 设置 Hugging Face 镜像源(中国大陆用户)
#export HF_ENDPOINT=https://hf-mirror.com
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

# 安装高速传输库
!pip install hf-transfer
# 设置环境变量启用加速
# export HF_HUB_ENABLE_HF_TRANSFER=1
os.environ['HF_HUB_ENABLE_HF_TRANSFER'] = '1'

本文章已经生成可运行项目
### 使用PythonKaggle API下载数据集 为了使用Python通过Kaggle API下载数据集,需先安装并配置好Kaggle API环境。具体操作如下: #### 安装Kaggle库 确保已安装`kaggle`包,可以通过pip命令完成安装。 ```bash pip install kaggle ``` #### 获取API密钥 前往[Kaggle官方网站](https://www.kaggle.com/)登录账户后,在个人资料页面获取API令牌(`kaggle.json`)文件[^3]。 #### 设置API密钥位置 将获得的`kaggle.json`放置于特定目录以便程序读取。对于不同操作系统而言,存储路径有所区别: - Windows: `C:\Users\<YourUsername>\.kaggle\kaggle.json` - Mac/Linux: `~/.kaggle/kaggle.json` 注意替换<YourUsername>为实际用户名[^5]。 #### 编写Python脚本调用API 编写一段简单的Python代码来执行数据集下载任务。下面是一个完整的例子,用于从指定竞赛或公共数据集中拉取资源。 ```python import os from kaggle.api.kaggle_api_extended import KaggleApi def download_dataset(competition_name=None, dataset_slug=None): """ Download a specific competition's or public dataset using the Kaggle API. Parameters: competition_name (str): Name of the competition to fetch data from. dataset_slug (str): Slug identifier for datasets not part of competitions. """ # Initialize and authenticate with the Kaggle API client api = KaggleApi() api.authenticate() if competition_name is not None: print(f'Downloading files from competition "{competition_name}"...') api.competition_download_files(competition=competition_name, path='./data') elif dataset_slug is not None: owner, slug = dataset_slug.split('/') print(f'Downloading files from dataset "{owner}/{slug}"...') api.dataset_download_files(owner_slug=owner, dataset_slug=slug, path='./data') if __name__ == '__main__': # Example usage - replace these values according to your needs COMPETITION_NAME = 'titanic' # Replace this value as needed DATASET_SLUG = 'zynicide/wine-reviews' # Or use this format instead # Uncomment one line below based on whether you're downloading from a competition or general dataset #download_dataset(competition_name=COMPETITION_NAME) download_dataset(dataset_slug=DATASET_SLUG) ``` 这段代码定义了一个名为`download_dataset()`的功能函数,它接受两个参数中的任意一个作为输入:比赛名称或者公开数据集的唯一标识符(即作者名/项目名)。根据传入的不同类型的ID,会分别调用相应的API方法进行数据抓取,并保存至本地磁盘上的`./data`子文件夹内[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值