gpt4 book ai didi

python - tflearn.models.dnn.DNN 在预测时会自动关闭 dropout 层和批量归一化吗?

转载 作者:行者123 更新时间:2023-11-30 09:17:33 39 4
gpt4 key购买 nike

我对神经网络还很陌生,这就是我决定使用 Tflearn 的原因,因为它非常直观。但是我找不到我的问题的答案。 tflearn 文档提供了以下示例,用于让深度神经网络预测某些内容:

network = ...
model = DNN(network)
model.load('model.tflearn')
model.predict(X)

我在网络内插入了一些批量归一化层,因为我的模型似乎过度拟合。 model.predict() 会自动“告诉”批量归一化层不要像训练阶段那样表现吗?或者我是否必须以某种方式指定这一点tflearn.config.is_training(is_training=False,session=None)

如果是,你知道我应该把这一行放在哪里吗?以及如何创建我的 session ,使其与我的代码执行相同的操作。目前它基本上看起来像 tflearn.org 上的示例:

net = tflearn.input_data(shape=[None, 784])
net = tflearn.fully_connected(net, 64)
net = tflearn.dropout(net, 0.5)
net = tflearn.fully_connected(net, 10, activation='softmax')
net = tflearn.regression(net, optimizer='adam',
loss='categorical_crossentropy')

model = tflearn.DNN(net)
model.fit(X, Y)

除了我使用批量归一化层并使用神经网络进行函数逼近。不幸的是,我现在无法发布我的代码,因为它在另一台计算机上,但它确实基本相同。

有人可以帮我解答这个问题吗?

提前致谢!

最佳答案

当你训练和预测时,你需要将tflearn.is_training设置为True或False,tflearn将处理剩下的事情。定义模型后,您可以通过以下方式训练它:

with tf.Session() as sess:
tflearn.is_training(True, session=sess)
model.fit(X, Y)

然后使用以下方法进行预测:

with tf.Session as sess:
tflearn.is_training(False, session=sess)
model.predict(X)

关于python - tflearn.models.dnn.DNN 在预测时会自动关闭 dropout 层和批量归一化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247304/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com