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