You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

神经网络是否存在标准化命名规范?

嘿,我完全懂这种困惑!刚入坑神经网络编程的时候,我也对着这些看起来“约定俗成”的命名一脸懵——为啥大家都用X和y?那些全大写的常量又是啥规矩?其实这些大多是机器学习/深度学习领域长期形成的行业惯例,虽然没有官方强制规范,但社区慢慢形成了一套默认的“潜规则”,我给你梳理下常见的:

一、数据集相关的常见命名
  • 大写X:通常代表特征矩阵(Feature Matrix),行对应样本,列对应特征,比如形状为(1000, 28)的X就表示1000个带28维特征的样本。这其实是从统计学领域继承来的传统,统计里常用大写字母表示变量矩阵。
  • 小写y:代表标签向量/矩阵(Label Vector/Matrix),对应X中每个样本的目标值——分类任务里可能是整数标签,回归任务里则是连续数值。用小写是因为它通常是一维或低维的向量/矩阵,和高维的特征矩阵X做区分。
  • 衍生写法:拆分数据集后,会用X_train、X_test、y_train、y_test来区分训练集和测试集,后缀_train/_test直观又清晰。
二、训练相关的常量命名

你提到的NB_EPOCH、BATCH_SIZE这类全大写+下划线分隔的写法,是Python社区里表示“常量”的传统约定(虽然Python没有真正的常量,但大家默认全大写的变量不应该被修改)。这些命名的含义都很直白:

  • NB_EPOCH:NB是法语“Nombre”的缩写,意为“数量”,所以它代表训练的总轮数(Epoch Number),也有人会用更易懂的EPOCHS来替代。
  • BATCH_SIZE:每次训练喂给模型的批次样本数量,这是全领域通用的写法。
  • VERBOSE:控制训练过程的日志输出等级,0表示不输出日志,1显示进度条,2则每个epoch输出一行总结,这也是Keras等框架的标准参数名。
  • NB_CLASSES:分类任务中的类别总数,同样NB表示数量,也可以写成更直白的NUM_CLASSES。
  • N_HIDDEN:隐藏层的神经元数量(Number of Hidden Units),有时候也会针对不同层细化成HIDDEN1_UNITS、HIDDEN2_UNITS。
三、其他常见的命名惯例
  • 模型对象:最常用的就是model,如果有多个模型,会加后缀区分,比如base_model(基础模型)、fine_tuned_model(微调后的模型)。
  • 权重与偏差:W或weights表示权重矩阵,b或bias表示偏差向量,这是从线性回归公式y = Wx + b直接继承来的命名。
  • 指标变量:训练过程中常用loss(损失)、accuracy(准确率,也会缩写成acc),加上前缀区分数据集,比如train_loss(训练集损失)、val_accuracy(验证集准确率)。

其实这些都没有绝对的“官方规范”,更多是社区为了代码可读性和交流方便慢慢形成的习惯——比如Andrew Ng的课程、Keras官方示例都用这些命名,后来大家就跟着沿用了。刚开始你可以先照着这些惯例写,等熟悉之后也可以根据自己的习惯调整,只要代码清晰易懂就行~

内容的提问来源于stack exchange,提问作者Cronch c

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:34:21