【问题标题】:Classifer partial fit in tensorflow张量流中的分类器 partial_fit
【发布时间】:2016-08-16 02:34:03
【问题描述】:

我想使用 SKFLOW 来逐步完成 DNNClassifier 的拟合,不幸的是代码如下:

    step_classifier = skflow.DNNClassifier(hidden_units=[10, 20, 10], n_classes=3)
    for _ in range(50):
      step_classifier = step_classifier.partial_fit(X, Y, steps =1 ,batch_size=32)
      score = metrics.accuracy_score(y, step_classifier.predict(x))
      print("Accuracy: %f" % score)

不会产生预期的结果——拟合的每次迭代都提供相同的精度:

   Accuracy: 0.315789
     Accuracy: 0.315789
     Accuracy: 0.315789
     Accuracy: 0.315789
   etc

似乎在这个 DNNClassifier 的先前版本中,即 TensorFlowDNNClassifier 有 continue_training 标志,会产生预期的效果。这在 DNNClassifier 中不可用。那么如何在 SKFLOW 中正确实施每个 epoch 的逐步训练呢? 谢谢你

【问题讨论】:

    标签: tensorflow skflow


    【解决方案1】:

    我希望这个答案会有所帮助,虽然有点晚了。
    热线:
    step_classifier = step_classifier.partial_fit(X, Y, steps =1 ,batch_size=32)
    有作为参数steps = 1。并且您使用外循环多次调用此行。我怀疑每次调用这条线时,都会创建一个大小为 32 的迭代器小批量,并从第一个示例开始迭代每一步的数据。换句话说,既然你离开了steps =1,我怀疑你只在相同的 32 个第一个训练示例上训练你的决策模型,因为每次你调用step_classifier.partial_fit,迭代器都从第一个训练示例开始。例如,尝试将steps = 1 替换为steps = 100

    至于 epochs,我自己正在尝试找到一种方法……好吧,现在只需取值 steps = Ceiling(dataset size / mini batch size) * desiredEpochs 直到我们找到替代方法

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 2021-09-03
      • 2021-02-05
      • 1970-01-01
      • 2018-07-31
      相关资源
      最近更新 更多