我正在尝试查看通过GCMLE(saved_model.pb
,assets/*
& variables/*
)导出的训练张量流模型的运行平均值和运行方差。这些值保存在图表中的哪个位置?我可以从tf.GraphKeys.TRAINABLE_VARIABLES
访问gamma / beta值,但我无法在任何tf.GraphKeys.MODEL_VARIABLES
中找到运行平均值和运行方差。运行平均值和运行方差是否存储在其他地方?
我知道在测试时(即Modes.EVAL
),运行平均值和运行方差用于标准化输入数据,然后使用gamma和beta对标准化数据进行缩放和移位。我试图在推理时查看我需要的所有变量,但是我找不到运行平均值和运行方差。这些仅用于测试时间而非推理时间(Modes.PREDICT
)吗?如果是这样,那就解释了为什么我在导出的模型中找不到它们,但我希望它们能够存在。
基于tf.GraphKeys,我尝试过tf.GraphKeys.MOVING_AVERAGE_VARIABLES
之类的其他内容,但它们也是空的。我还在batch_normalization文档中看到了这一行“注意:在训练时,需要更新moving_mean和moving_variance。默认情况下,更新操作放在tf.GraphKeys.UPDATE_OPS
中,因此需要将它们作为依赖项添加到train_op “。所以我接着尝试从我保存的模型中查看tf.GraphKeys.UPDATE_OPS
,它们包含一个分配操作batch_normalization/AssignMovingAvg:0
,但仍不清楚我从何处获取该值。
答案 0 :(得分:1)
似乎移动平均值和移动方差存储在tf.GraphKeys.GLOBAL_VARIABLES
内,看起来MODEL_VARIABLES
中没有显示的原因是因为您需要使用tf.contrib.framework.local_variable
答案 1 :(得分:0)
除了#reese0106的答案之外,
如果您想获取BatchNorm的moving_mean,moving_variance
,则可以使用以下名称对其进行索引。< / p>
Sub CreateMatDump()
Dim DumpFile As Workbook 'SAP Material Dump File
Dim NRows As Long
Dim SAPNum As Variant, MatType As Variant, MatGroup As Variant, UOM As Variant, MPN As Variant, MatDesc As Variant
'Count rows
NRows = Cells(Rows.Count, 14).End(xlUp).Row
'Copy values to arrays
SAPNum = Range(Cells(3, 2), Cells(NRows, 2)).Value
MatType = Range(Cells(3, 6), Cells(NRows, 6)).Value
MatGroup = Range(Cells(3, 11), Cells(NRows, 11)).Value
UOM = Range(Cells(3, 10), Cells(NRows, 10)).Value
MPN = Range(Cells(3, 14), Cells(NRows, 14)).Value
MatDesc = Range(Cells(3, 9), Cells(NRows, 9)).Value
'Open SAP Material Dump File
Set DumpFile = Workbooks.Open(Filename:="R:\BURNABY\SAP Templates (Parts Upload & Batch PR Entry)\SAP Material Dump - Test.xlsx")
'Print arrays to SAP Material Dump File
DumpFile.Sheets("Sheet1").Range("A2").Resize(NRows, 1).Value = SAPNum.Value
DumpFile.Sheets("Sheet1").Range("B2").Resize(NRows, 1).Value = MatType.Value
DumpFile.Sheets("Sheet1").Range("C2").Resize(NRows, 1).Value = MatGroup.Value
DumpFile.Sheets("Sheet1").Range("D2").Resize(NRows, 1).Value = UOM.Value
DumpFile.Sheets("Sheet1").Range("E2").Resize(NRows, 1).Value = MPN.Value
DumpFile.Sheets("Sheet1").Range("F2").Resize(NRows, 1).Value = MatDesc.Value
End Sub