导航菜单

AI编程规范

代码规范

1. 命名规范

AI项目中的命名需要清晰、一致且具有描述性。

# 变量命名
# 好的命名
model_accuracy = 0.95
training_epochs = 100
learning_rate = 0.001

# 不好的命名
acc = 0.95
ep = 100
lr = 0.001

# 函数命名
def train_model():
    pass

def evaluate_performance():
    pass

# 类命名
class NeuralNetwork:
    pass

class DataPreprocessor:
    pass

# 常量命名
MAX_BATCH_SIZE = 32
DEFAULT_LEARNING_RATE = 0.001
MODEL_SAVE_PATH = "models/"

2. 代码结构

代码应该遵循清晰的层次结构,便于维护和扩展。

# 标准项目结构
project/
├── data/               # 数据目录
│   ├── raw/           # 原始数据
│   └── processed/     # 处理后的数据
├── models/            # 模型文件
├── src/               # 源代码
│   ├── data/         # 数据处理模块
│   ├── models/       # 模型定义
│   ├── training/     # 训练相关
│   └── utils/        # 工具函数
├── tests/            # 测试文件
├── configs/          # 配置文件
└── notebooks/        # Jupyter notebooks

# 模块化示例
# src/models/model.py
class Model:
    def __init__(self, config):
        self.config = config
    
    def build(self):
        pass
    
    def train(self):
        pass

# src/training/trainer.py
class Trainer:
    def __init__(self, model, data):
        self.model = model
        self.data = data
    
    def train(self):
        pass

# src/utils/helpers.py
def load_config(path):
    pass

def save_model(model, path):
    pass

3. 注释规范

注释应该清晰、准确,并遵循统一的格式。

"""
模块级文档字符串
描述模块的功能、使用方法和注意事项
"""

def process_data(data, batch_size=32):
    """
    处理输入数据
    
    参数:
        data (np.ndarray): 输入数据数组
        batch_size (int): 批处理大小
    
    返回:
        np.ndarray: 处理后的数据
    
    异常:
        ValueError: 当输入数据格式不正确时
    """
    # 数据预处理
    processed = normalize_data(data)
    
    # 批处理
    batches = split_into_batches(processed, batch_size)
    
    return batches

class Model:
    """模型类,实现神经网络模型"""
    
    def __init__(self, input_size, hidden_size):
        """
        初始化模型
        
        参数:
            input_size (int): 输入维度
            hidden_size (int): 隐藏层维度
        """
        self.input_size = input_size
        self.hidden_size = hidden_size