5

我在保存 MNIST tensorflow 示例的训练权重 (W) 时遇到问题,如此处所述。MNIST 张量流。如果我的理解是正确的,我们将来需要其他测试用例(不是 MNIST 测试用例)的训练权重。我尝试使用 print W.eval() 来获取重量;但它恰好为我提供了一个 784x10 的零矩阵。如何以数组形式或 .csv 格式(不是 .cpkt)获得权重?

4

4 回答 4

3

我做过类似的事情:

weight_values = session.run(W)
numpy.savetxt("myfilename.csv", weight_values, delimiter=",")
于 2016-03-17T10:17:00.913 回答
0

我遇到了类似的问题。在这里记录答案以防万一这也是您的问题/为了后代。我正在打印W到控制台,看起来全为零:

[[ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 ..., 
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]]

但实际上,每列中显示的权重对应于每张图像中的前 3 个和后 3 个像素(我认为是左上和右下)......并且在这些位置的任何 MNIST 图像中都没有颜色。所以权重保持为零。

如果您遵循 Daniel Slater 的建议,您可以在输出中看到非零权重。

于 2016-04-07T17:55:58.943 回答
0

创建模型后,您可以使用tf.train.Saver().save它来保存模型。使用它只需运行:

   tf.train.Saver().save( SESSION-NAME-HERE , "SAVE-LOCATION-HERE")

在两者之后的某个时刻tf.Session() as SESSION-NAME-HERE:SESSION-NAME-HERE.run(tf.global_variables_initializer())都已使用(但在您关闭会话之前)。

要恢复,您可以使用tf.train.Saver().restore()与之前类似的语法:

   tf.train.Saver().restore(SESSION-NAME-HERE , "SAVE-LOCATION-HERE")

运行此之后tf.Session() as SESSION-NAME-HERE:。此代码恢复以前使用的变量。

有关更多信息,请参阅:https ://www.tensorflow.org/how_tos/variables/

于 2017-01-20T00:49:57.477 回答
0

有人用过梯度动物园吗?

保存、版本化和共享您的神经网络模型权重

(自己没用过)

于 2017-06-26T10:34:25.153 回答