2016-07-18 8 views
2

Я пишу этот код в тензорном потоке, однако, когда я его запускаю, появляется ошибка в заголовке. Может ли кто-нибудь помочь мне и объяснить мне эту проблему? Спасибо за любую помощь.tensorflow TypeError: run() получил несколько значений для аргумента 'feed_dict'

import tensorflow as tf 
sess = tf.InteractiveSession() 

import numpy as np 


a = np.array([[1.0,2.0,3.0,4.0],[5.0,6.0,7.0,8.0],[9.0,10.0,11.0,12.0],[1.0,1.0,1.0,1.0]]) 
w = np.ones([3.0,3.0,1.0,1.0]) 

W_conv1 = tf.Variable(w) 

def conv2d(x, W): 
    return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME') 


x = tf.placeholder(tf.float64, shape=[4,4]) 

x_image = tf.reshape(x,[1,4,4,1]) 

h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1)) 

sess.run(tf.initialize_all_variables()) 

i,h1 = sess.run(x_image,h_conv1, feed_dict={x:a}) 

ответ

6

Проблема заключается в том, что вы передаете h_conv1 в качестве второго аргумента для запуска, который feed_dict, а затем с указанием имени аргумента feed_dict а. Если вы хотите, чтобы несколько ops оценивались, вы должны передать их как массив в первом аргументе следующим образом:

i,h1 = sess.run([x_image, h_conv1], feed_dict={x:a}) 

 Смежные вопросы

  • Нет связанных вопросов^_^