使用 ML 变形器训练模型后,可以在与训练模型的同一文件夹中找到 metadata.json 文件。此文件包含有关训练过程的有用信息,概述如下。
| 字段 | 类型 | 描述 |
|---|---|---|
| version | 对象 (int, int) | 拥有“主要”和“次要”组件。表示这适用于哪个版本的元数据(以及隐含的 ML 变形器)。 |
| startFrame | 整数 | 训练数据帧范围的开始。 |
| endFrame | 整数 | 训练数据的帧范围。 |
| sampleCount | 整数 | 训练帧数。 |
| controlDefinitions | 对象数组 | 用作模型输入的控件列表。每个索引代表一个浮点值。包括输入栓(只有索引是相关的)以及在此控件的训练集中看到的最小值和最大值。 |
| deltaCount | 整数 | 导出文件中每帧的顶点增量数。在导出时记录。应完全匹配 affectCount。 |
| exportDate | 字符串 | 导出训练数据的时间。(格式:yyy-mm-dd hh:mm:ss(时区)) |
| exportTime | 浮点 | 导出数据所用的时间,以秒为单位。 |
| exportFormat | 字符串 | 训练数据另存为的文件格式。
|
| affectCount | 整数 | 受此模型影响的顶点数。如果对完整几何体进行操作,则应等于 fullCount。 |
| fullCount | 整数 | 变形网格上的顶点总数。 |
| affectMap | 整数数组 | 表示受模型影响的顶点的顶点索引数组。这将使用 Maya 的顶点索引,如果处理的是完整网格,则将为空。 |
| deltaUnits | 字符串 | 导出训练数据时使用的场景单位。对转化很有用。 |
| deltaMode | 整数 | 表示所导出的增量模式的整数值。与 deltaExportType 存在冗余。 |
| deltaExportType | 字符串 | deltaMode 的字符串缩写。曲面模式的值为“dos”,偏移的值为“dbp”。
注: mlDeformer -vertexDeltas 命令还有其他可能的值,但在导出过程中仅使用 dos 或 dbp。
|
| smoothingIterations | 整数 | 在计算或应用增量之前,对基础网格进行平滑处理的迭代次数。也适用于导出的顶点帧。 |
| subsetState | 字符串 | 表示几何体是全部变形还是部分变形。 |
| componentTagExpression | 字符串 | 定义哪些顶点将受变形器影响的组件标记表达式。 |
| geometry | 字符串 | Maya 中几何体节点的名称。 |
| lossMetric | 字符串 | 训练时使用的损失函数。将始终为“MSE”(均方误差)。 |
| trainingTime | 浮点 | 训练模型所花费的时间,以秒为单位。 |
| trainingDate | 字符串 | 训练模型的时间。(格式:yyy-mm-dd hh:mm:ss(时区)) |
| finalTrainLoss | 浮点 | 通过损失指标衡量的最终训练损失。 |
| bestTrainEpoch | 整数 | 训练损失最低的训练次数。 |
| minTrainLoss | 浮点 | 最低训练损失(就是 bestTrainEpoch 中的损失)。 |
| minTrainMAE | 浮点 | 使用平均绝对误差 (MAE) 损失计算的最低训练损失(以场景单位测量)。 |
| finalValidationLoss | 浮点 | 通过损失指标衡量的最终验证损失。 |
| bestValidationEpoch | 整数 | 验证损失最低的训练次数。 |
| minValidationLoss | 浮点 | 最低验证损失(就是 bestValidationEpoch 中的损失)。 |
| minValidationMAE | 浮点 | 使用平均绝对误差 (MAE) 损失计算的最低验证损失(以场景单位测量)。 |
| learningRate | 浮点 | 训练期间的学习率。 |
| batchSize | 整数 | 每个训练批次的样本数。 |
| epochs | 整数 | 完成训练的总训练次数。 |
| userPrincipalShapes | 布尔 | 表示训练是否使用了主形状。训练模型的输出将是形状权重,而不是增量。 |
| principaleShapeCount | 整数 | 训练的主形状数。 |
| shapeConstructionOption | 整数 | 表示用于构建主形状的选项。
|
| modelDefinition | 对象 | 由训练参数定义的模型隐藏层。在训练期间将解析此定义,以确定实际的 pytorch 模型结构。 |
| exportSurfaceInformation | 布尔 | 数据是否包含额外的曲面信息(即顶点帧)。 |
| surfaceFrameMap | 整数数组 | 导出数据中包含顶点帧的顶点索引列表。此列表使用 Maya 的顶点索引,默认情况下为网格的 10%。 |
| surfaceRepresentation | 字符串 | 曲面信息的导出方式。表示顶点帧的格式。
|
| surfaceFrameSize | 整数 | 每个顶点帧有多少关联值,具体取决于其表示法。该值为 9 或 6,具体取决于 surfaceRepresentation。 |
{
"version": {
"major": 1,
"minor": 0
},
"startFrame": 0,
"endFrame": 2000,
"sampleCount": 2001,
"controlDefinitions": [
{
"src_plug": "mlDeformer1.controlValues[0]",
"minimum": -99.99280023258999,
"maximum": 99.89342451625558
},
...
{
"src_plug": "mlDeformer1.controlValues[11]",
"minimum": -99.89837234610832,
"maximum": 99.97574443880183
}
],
"deltaCount": 342,
"exportDate": "2025-01-08 14:18:39 (UTC)",
"exportTime": 43.439516599988565,
"exportFormat": "shelf",
"affectCount": 342,
"fullCount": 342,
"affectMap": [],
"deltaUnits": "cm",
"deltaMode": 1,
"deltaExportType": "dos",
"smoothingIterations": 0,
"exportSurfaceInformation": true,
"surfaceFrameMap": [
0,
5,
11,
12,
23,
30,
55,
59,
84,
91,
96,
131,
158,
161,
177,
183,
185,
195,
197,
205,
207,
222,
236,
246,
257,
258,
262,
269,
286,
292,
295,
306,
313,
338
],
"surfaceRepresentation": "3x3",
"surfaceFrameCount": 34,
"surfaceFrameSize": 9,
"subsetState": "complete",
"componentTagExpression": "*",
"geometry": "pCylinderShape1",
"lossMetric": "MSE",
"trainingTime": 4.866239299997687,
"trainingDate": "2025-01-08 14:19:39 (UTC)",
"finalTrainLoss": 0.015372385734485256,
"bestTrainEpoch": 99,
"minTrainLoss": 0.015372385734485256,
"minTrainMAE": 0.058620557851261565,
"finalValidationLoss": 0.0242560015833793,
"bestValidationEpoch": 99,
"minValidationLoss": 0.0242560015833793,
"minValidationMAE": 0.07153895289743718,
"learningRate": 0.0005,
"batchSize": 128,
"epochs": 100,
"usesPrincipalShapes": false,
"principalShapeCount": 0,
"shapeConstructionOption": 0,
"modelDefinition": {
"version": 1.0,
"hidden_layers": [
{
"neurons": 512,
"activation": "LeakyReLU",
"dropout_ratio": 0.0
},
{
"neurons": 512,
"activation": "LeakyReLU",
"dropout_ratio": 0.0
}
]
}
}