2017-08-01 52 views
1

I'm有問題餵養我的佔位符(keep_prob)之一。錯誤說我必須提供一個浮點值,但我已經在做它。我一直在試圖解決它,但我無法找出解決方案。我的代碼是在這裏:錯誤餵養的佔位符

Error while running a convolutional network using my own data in Tensorflow

而且我的錯誤是:

File "<ipython-input-81-fd184c90091e>", line 4, in <module> 
keep_prob = tf.placeholder(tf.float32) 
File "c:\python36\lib\site-packages\tensorflow\python\ops\array_ops.py", 
line 1530, in placeholder 
return gen_array_ops._placeholder(dtype=dtype, shape=shape, name=name) 
File "c:\python36\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", 
line 1954, in _placeholder 
name=name) 
File "c:\python36\lib\site- 
packages\tensorflow\python\framework\op_def_library.py", line 767, in 
apply_op 
op_def=op_def) 
File "c:\python36\lib\site-packages\tensorflow\python\framework\ops.py", 
line 2506, in create_op 
original_op=self._default_original_op, op_def=op_def) 
File "c:\python36\lib\site-packages\tensorflow\python\framework\ops.py", 
line 1269, in __init__ 
self._traceback = _extract_stack() 

InvalidArgumentError (see above for traceback): You must feed a value for 
placeholder tensor 'Placeholder_17' with dtype float 
[[Node: Placeholder_17 = Placeholder[dtype=DT_FLOAT, shape=<unknown>, 
_device="/job:localhost/replica:0/task:0/cpu:0"]()]] 

謝謝。

回答

2

我懷疑你的錯誤從您覺得行不來。我不能運行你的代碼,但看着它,我的猜測是:

你喂keep_prob價值在這裏,這是正常的訓練:

train_step.run(feed_dict={x: image_batch_eval, y_: label_batch_eval, 
    keep_prob: 0.5}) 

但你不喂keep_prob價值在這裏,你也必須做的:

print('Precisión %g' % accuracy.eval(feed_dict={x: image_test_batch_eval, 
y_: label_test_batch_eval})) 

如果你看一下你的代碼中,accuracy操作最終利茲到這個操作,這需要佔位符:

h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob) 

所以,如果你正在評估例如驗證或測試的準確性,然後反饋值1.0不管你餵養訓練否則飼料。

試試看吧?