ML.TRAINING_INFO
函数
使用 ML.TRAINING_INFO
函数可查看模型训练迭代的相关信息。ML.TRAINING_INFO
可在 CREATE MODEL
查询运行时或运行后运行。如果您在首次训练迭代完成之前运行包含 ML.TRAINING_INFO
的查询,则查询将返回 Not found
错误。
ML.TRAINING_INFO
会返回以下列:
training_run
:对于新创建的模型来说,此列中的值为零。如果通过warm_start
重新训练模型,则此值会递增。iteration
:训练运行的迭代次数。首次迭代的值为零。训练运行每增加一次,该值就会递增。loss
:训练数据迭代后计算得出的损失指标。对于逻辑回归来说,损失为对数损失,对于线性回归来说,损失为均方误差。对于多类别逻辑回归来说,loss
为 交叉熵对数损失。 对于显式矩阵分解模型,损失是根据已查看的输入评分计算的均方误差。 对于隐式矩阵分解模型,损失的计算公式如下:\( Loss = \sum_{u, i} c_{ui}(p_{ui} - x^T_uy_i)^2 + \lambda(\sum_u||x_u||^2 + \sum_i||y_i||^2) \)如需详细了解变量的含义,请点击此处
eval_loss
:根据留出数据计算得出的损失指标。对于 k-means 模型,ML.TRAINING_INFO
不返回eval_loss
列。如果DATA_SPLIT_METHOD
为'NO_SPLIT'
,则eval_loss
列中的所有条目均为NULL
。learning_rate
:此迭代中的学习速率。duration_ms
:迭代所用的时间,以毫秒为计量单位。cluster_info
:由 STRUCT 组成的 ARRAY,其中包含字段centroid_id
、cluster_radius
和cluster_size
。ML.TRAINING_INFO
使用标准化特征计算cluster_radius
和cluster_size
。仅针对 k-means 模型返回。
ML.TRAINING_INFO
权限
运行 ML.TRAINING_INFO
时需要 bigquery.models.create
和 bigquery.models.getData
。
ML.TRAINING_INFO
语法
ML.TRAINING_INFO(MODEL `project_id.dataset.model`)
其中:
project_id
是您的项目 ID。dataset
是包含此模型的 BigQuery 数据集。model
是模型的名称。
ML.TRAINING_INFO
示例
以下示例从 mydataset
的 mymodel
中检索训练信息。该数据集位于默认项目中。
SELECT * FROM ML.TRAINING_INFO(MODEL `mydataset.mymodel`)
ML.TRAINING_INFO
限制
ML.TRAINING_INFO
函数存在以下限制:
- 不支持导入的 TensorFlow 模型。
- 对于时间序列模型,此函数仅返回三列:
training_run
、iteration
、duration_ms
。如果同时预测多个时间序列,则此函数不会按迭代或时间序列公开训练信息。duration_ms
是整个过程的总时间成本。