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
- 用户在搜索框输入关键字 ➜ 主要匹配
title和description- 用户点击结果 ➜ 浏览器导航到
id生成的URL- 使用-不要_
!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'
817

被折叠的 条评论
为什么被折叠?



