Python训练营打卡31
DAY 31 文件的规范拆分和写法
知识点回顾
- 规范的文件命名
- 规范的文件夹管理
- 机器学习项目的拆分
- 编码格式和类型注解
常见的 Python 项目结构
project_name/ ├── src/ # 源代码目录 │ ├── package1/ # 包1 │ │ ├── __init__.py # 包初始化文件 │ │ ├── module1.py # 模块1 │ │ └── module2.py # 模块2 │ └── package2/ # 包2 │ ├── __init__.py │ └── ... ├── tests/ # 测试代码目录 │ ├── test_module1.py # 对应src/package1/module1.py的测试 │ └── ... ├── data/ # 数据文件目录(训练数据、配置等) ├── models/ # 模型文件目录(如果是机器学习项目) ├── docs/ # 文档目录 ├── scripts/ # 脚本目录(用于运行实验、数据处理等) ├── requirements.txt # 依赖包列表 ├── setup.py # 包安装配置(如果项目是一个包) └── README.md # 项目说明文档
将代码按照不同的功能划分到多个文件和包中
# src/dataset.py - 数据加载与处理 class Dataset:def __init__(self, data_path):self.data = self.load_data(data_path)def load_data(self, path):# 加载数据的代码passdef preprocess(self):# 数据预处理的代码pass# src/model.py - 模型定义 import torch.nn as nnclass MyModel(nn.Module):def __init__(self, input_size, hidden_size, output_size):super().__init__()# 模型结构定义passdef forward(self, x):# 前向传播逻辑pass# src/train.py - 模型训练 def train(model, dataset, epochs=10):# 训练循环for epoch in range(epochs):# 训练步骤pass# src/evaluate.py - 模型评估 def evaluate(model, dataset):# 评估模型pass# src/main.py - 主程序入口 from dataset import Dataset from model import MyModel from train import train from evaluate import evaluateif __name__ == "__main__":dataset = Dataset("data/train.csv")model = MyModel(10, 20, 2)train(model, dataset)evaluate(model, dataset)
对于机器学习项目,建议按照以下方式拆分文件:
data/
目录:存放原始数据和处理后的数据。src/dataset.py
:负责数据加载和预处理。src/model.py
:定义模型架构。src/train.py
:实现模型训练逻辑。src/evaluate.py
:实现模型评估逻辑。src/predict.py
:用于模型推理。models/
目录:存储训练好的模型。编码格式:Python 文件应使用 UTF-8 编码,在文件开头可以添加如下编码声明.
# -*- coding: utf-8 -*-
类型注解:建议使用类型注解来增强代码的可读性和可维护性
def add_numbers(a: int, b: int) -> int:return a + b
@浙大疏锦行