簡體   English   中英

嘗試拆分神經網絡測試時出錯

[英]Error when trying to split neural network testing

如果我有tensorflow神經網絡,則可以像這樣在測試數據上運行:

   result = sess.run(y_conv, feed_dict={x: test_inputs})

但是,這可能會遇到內存問題,因此我嘗試按以下方式分解計算:

result = []
for i in range(0, len(test_inputs), 100):
   end = min(i+100 - 1, len(test_inputs)  - 1)
   r = sess.run(y_conv, feed_dict={x: test_inputs.loc[i:end, :]})
   result.append(r)

但是,現在出現此錯誤:

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

那么,這個問題的原因是什么呢? 我本以為網絡可以在較小的示例批次上很好地工作。

如果沒有相關性,則將按如下方式創建神經網絡:

W_conv1 = weight_variable([5, 5, 1, 32])
b_conv1 = bias_variable([32])
x_image = tf.reshape(x, [-1, 28, 28, 1])
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)
W_conv2 = weight_variable([5, 5, 32, 64])
b_conv2 = bias_variable([64])

h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)

W_fc1 = weight_variable([7 * 7 * 64, 1024])
b_fc1 = bias_variable([1024])

h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)

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

W_fc2 = weight_variable([1024, 10])
b_fc2 = bias_variable([10])

y_conv = tf.matmul(h_fc1_drop, W_fc2) + b_fc2

您已輸入x作為輸入,但未輸入keep_prob 您的網絡看起來類似於Deep MNIST for Experts 示例片段:

train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})

為了進行推斷,您應該將keep_prob更改為1.0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM