【问题标题】:How to save weights of training data from MNIST testing on tensorflow for future use?如何在 TensorFlow 上保存来自 MNIST 测试的训练数据权重以供将来使用?
【发布时间】:2016-07-03 05:15:06
【问题描述】:

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

【问题讨论】:

    标签: python neural-network tensorflow deep-learning mnist


    【解决方案1】:

    有人用过gradientzoo 吗?

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

    (自己没用过)

    【讨论】:

      【解决方案2】:

      您可以在创建模型后使用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/

      【讨论】:

        【解决方案3】:

        我遇到了类似的问题。在这里记录答案以防万一这也是您的问题/为了后代。我正在将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 的建议,您可以在输出中看到非零权重。

        【讨论】:

          【解决方案4】:

          我做过类似的事情:

          weight_values = session.run(W)
          numpy.savetxt("myfilename.csv", weight_values, delimiter=",")
          

          【讨论】:

            猜你喜欢
            • 2018-07-28
            • 2021-11-01
            • 2017-10-12
            • 2021-11-30
            • 2019-10-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-04-08
            相关资源
            最近更新 更多