Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TensorFlow:如何在不使用提要的情况下更改辍学的保留问题_Tensorflow_Regularized - Fatal编程技术网

TensorFlow:如何在不使用提要的情况下更改辍学的保留问题

TensorFlow:如何在不使用提要的情况下更改辍学的保留问题,tensorflow,regularized,Tensorflow,Regularized,我已经构建了一个TensorFlow模型,该模型与输入队列提供的培训和测试批次一起工作。因此,我没有使用标准的feed_dict明确地为训练提供数据。然而,我需要实现dropout,这需要一个keep_prob占位符在测试期间关闭dropout 如果没有一个单独的模型,我找不到如何解决这个问题。有什么建议吗 谢谢假设张量层1的定义如下: layer1 = tf.nn.relu(tf.matmul(w,x)+b) 要申请退学,你只需这样做 dropout_layer1 = tf.nn.dropo

我已经构建了一个TensorFlow模型,该模型与输入队列提供的培训和测试批次一起工作。因此,我没有使用标准的feed_dict明确地为训练提供数据。然而,我需要实现dropout,这需要一个keep_prob占位符在测试期间关闭dropout

如果没有一个单独的模型,我找不到如何解决这个问题。有什么建议吗


谢谢

假设张量层1的定义如下:

layer1 = tf.nn.relu(tf.matmul(w,x)+b)
要申请退学,你只需这样做

dropout_layer1 = tf.nn.dropout(layer1, keep_prob)
您的
keep_prob
是在某个地方定义的,我通常用标志来控制它,但您可以在程序内部使用普通声明。然后您可以使用
dropout\u layer1
作为法线张量。这里有一个关于使用它的简单示例:

import tensorflow as tf
import numpy as np
tf.reset_default_graph()

keep_prob = 0.5

a = tf.get_variable('a', initializer=np.random.normal())
b = tf.get_variable('b', initializer=np.random.normal())

x=[0.,1.,2.,3.,4.,5.,6.,7.,8.,9.]
y=list(map(lambda i: i+np.random.normal(0, 0.1), x))
f=tf.multiply(x,a)+b
f_dropout = tf.nn.dropout(f,keep_prob)

loss = tf.reduce_sum(tf.pow(f_dropout-y, 2))
train = tf.train.GradientDescentOptimizer(0.001).minimize(loss)

sess = tf.Session() #
init = tf.global_variables_initializer()
sess.run(init)

for i in range(1000):
    _, l, slope, intercept = sess.run([train, loss, a, b])
    print(list(map(lambda i: i*slope+intercept, x)))
    print('a: %.2f' %slope)
    print('b: %.2f' %intercept)

从回归的角度来看,这是一个糟糕的例子,但它展示了如何对辍学者进行编程,并且很容易推断辍学者的行为。我希望你会喜欢:)

我的问题过时了,我把它弄得太复杂了


调用sess.run()时,仍然可以通过feed_dict将值提供给占位符,即使有一个直接提供培训示例的输入队列。

谢谢,但这已经很清楚了,尽管我的问题中没有明确说明。不过,我刚刚解决了这个问题,并没有我想象的那么复杂:在使用输入队列时,仍然可以向占位符(在本例中为keep_prob)提供值。很高兴您解决了这个问题。我仍然修改了我的答案。过来看!我希望你会喜欢它!