【发布时间】: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 same 和training 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 epoch和same batch size.上进行了训练,为什么模型输出不同(变化 5-10%)?.
标签: tensorflow machine-learning neural-network deep-learning tflearn