【问题标题】:Why tflearn prediction model accuracy are different. when same data(training data) training on different systems?为什么 tflearn 预测模型的准确率不同。当在不同系统上训练相同的数据(训练数据)时?
【发布时间】:2018-05-18 19:26:28
【问题描述】:

更新

我目前正在研究Tflearn. 我有一个关于 Tensorflow tflearn 模型的问题。我的 tflearn 模型运行良好。但我对这个模型有一些疑问。我已通过sentence data 进行培训。当我在一台计算机上通过sentence data 时,我就有了一个模型。之后,我在另一台计算机上通过了same sentence data,然后得到了第二个模型。我已经测试过这两个模型。所以我通过了input sentence data 的一个模型。然后通过模型二的same input sentence data 然后我观察到input data were sametraining data were same 但是这两个模型的输出有70-80% 相似。由于随机性,20-30% 会有所不同。如何消除模型中的这种随机性?我们正在使用 DNN。

更新模型语法

我用过下面的模型:-

train_x = list(self.training[:, 0])

train_y = list(self.training[:, 1])

tf.reset_default_graph()

net = tflearn.input_data(shape=[None, len(train_x[0])])

net = tflearn.fully_connected(net, 8)

net = tflearn.fully_connected(net, 8)

net = tflearn.fully_connected(net, len(train_y[0]), activation='softmax')

net = tflearn.regression(net,optimizer='sgd',shuffle_batches=False, learning_rate=0.1,loss='categorical_crossentropy')

model = tflearn.DNN(net, tensorboard_dir='tflearn_logs')

model.fit(train_x, train_y, n_epoch=500, batch_size=8, show_metric=True)

【问题讨论】:

  • 您是否在训练为随机权重之前初始化了您的模型?这会在每次训练时产生不同的模型。
  • @jmkmay 没有得到你。您能否对此进行更多描述?请参阅上面更新的问题。
  • 当你初始化一个模型(即,起始权重是多少)时,它们必须是非零的。可以使用多种猜测(研究领域本身),但最简单最标准的方法是分配一个随机数。如果您运行两个单独的训练例程并且每个例程以不同的随机数开始,您会看到最终模型的变化。
  • @jmkmay 我们的模型从零初始化。我已将same data 传递给两种不同的机器型号。经过训练,我们将same input 传递给了两个不同的机器模型。一个模型已经在 same epochsame batch size. 上进行了训练,为什么模型输出不同(变化 5-10%)?.
  • 没有minimal, complete, and verifiable example,我们无能为力。

标签: tensorflow machine-learning neural-network deep-learning tflearn


【解决方案1】:

根据我的个人经验,您在将训练数据转换为数组之前随机打乱了训练数据。尝试在您的代码中搜索random.shuffle(self.training),并注释该行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2020-03-11
    • 1970-01-01
    • 2020-12-12
    • 2019-04-14
    • 2018-06-07
    相关资源
    最近更新 更多