【pytorch】深度学习准备:基本配置

深度学习中常用包

python 复制代码
import os 
import numpy as np 
import torch
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader
import torch.optim as optimizer

超参数设置

2种设置方式:将超参数直接设置在训练的代码中;用yaml、json,dict等文件来存储超参数

python 复制代码
# 批次的大小
batch_size = 16
# 优化器的学习率
lr = 1e-4
# 训练次数
max_epochs = 100

GPU设置

python 复制代码
# 方案一:使用os.environ,这种情况如果使用GPU不需要设置
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1' # 指明调用的GPU为0,1号

# 方案二:使用"device",后续对要使用GPU的变量用.to(device)即可
device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu") # 指明调用的GPU为1号

使用argparse和yaml文件

  1. argparse的使用:
python 复制代码
import argparse
"""
	argparse.ArgumentParser()创建了一个对象
	add_argument()添加参数
	parse_args()将参数封装在opt内,各个参数通过.运算符调用
"""

def main(opt):
    print(opt.num_batches)

if __name__ == '__main__':

    parse = argparse.ArgumentParser()
    parse.add_argument('--num_batches', type=int, default=50, help='the num of batch')
    parse.add_argument('--num_window', type=int, default=5, help='the num of window')
    parse.add_argument('--weight', type=str, default= '../pretrain.pth', help='the path of pretrained model')

    opt = parse.parse_args()
    main(opt)
  1. yaml文件的使用
    下面是一个yaml文件的例子,参数呈现层级结构
yaml 复制代码
device: 'cpu'

data:
    train_path: 'data/train'
    test_path: 'test/train'
    num: 1000

读取yaml文件

python 复制代码
def read_yaml(path):
"""
	read()读入yaml文件中的内容
	safe_load()加载yaml格式的内容并转换为字典
"""
    file = open(path, 'r', encoding='utf-8')
    string = file.read()
    file.close()
    dict = yaml.safe_load(string)

    return dict

path = 'config.yaml'
Dict = read_yaml(path)
device = Dict['device']
print(device)
train_path = Dict['data']['train_path']
print(train_path)
  1. 使用方法
    在yaml文件中给全部参数设置默认值,使用argparse库设置待调参数的值

参考资料

  1. 深度学习代码中的argparse以及yaml文件的使用
  2. datawhale的thorough-pytorch repo
相关推荐
曦月逸霜2 小时前
啥是RAG 它能干什么?
人工智能·python·机器学习
AI医影跨模态组学2 小时前
Lancet Digit Health(IF=24.1)广东省人民医院刘再毅&南方医科大学南方医院梁莉等团队:基于可解释深度学习模型预测胶质瘤分子改变
人工智能·深度学习·论文·医学·医学影像·影像组学
应用市场2 小时前
AI 编程助手三强争霸(2026 版):Claude、Gemini、GPT 各自擅长什么?
人工智能·gpt
CSND7402 小时前
YOLO resume断点续训(不能用官方的权重,是自己训练一半生成的last.pt)
深度学习·yolo·机器学习
AC赳赳老秦2 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
脑极体2 小时前
从Token消耗到DAA增长,AI价值标尺正在重构
人工智能·重构
csdn小瓯2 小时前
LangGraph自适应工作流路由机制:从关键词匹配到智能决策的完整实现
人工智能·fastapi·langgraph
QYR-分析2 小时前
高功率飞秒激光器行业发展现状、市场机遇及未来趋势分析
大数据·人工智能
智者知已应修善业2 小时前
【51单片机89C51及74LS273、74LS244组成】2022-5-28
c++·经验分享·笔记·算法·51单片机
奋斗的小乌龟2 小时前
langchain4j笔记-06
笔记