Python Tensorflow:如何在经过训练的神经网络上运行测试集

Python Tensorflow:如何在经过训练的神经网络上运行测试集,python,image-processing,tensorflow,neural-network,Python,Image Processing,Tensorflow,Neural Network,我已经创建了一个神经网络,将RGB损坏的图像作为输入,并生成一个干净的版本。在我完成我的神经网络训练后,我想在一组50幅图像上测试它。每个输入(图像)包含一个批量大小为64*32*32*3的图像(我将图像裁剪成64个补丁,然后将其馈送到NN)。我使用以下代码训练我的NN: # placeholders, variables etc here train_step = tf.train.AdamOptimizer().minimize(loss) #loading data to queue t

我已经创建了一个神经网络,将RGB损坏的图像作为输入,并生成一个干净的版本。在我完成我的神经网络训练后,我想在一组50幅图像上测试它。每个输入(图像)包含一个批量大小为64*32*32*3的图像(我将图像裁剪成64个补丁,然后将其馈送到NN)。我使用以下代码训练我的NN:

# placeholders, variables etc here
train_step = tf.train.AdamOptimizer().minimize(loss)

#loading data to queue
training_queue = tf.train.string_input_producer(clean_set, shuffle=False)
cor_queue = tf.train.string_input_producer(corrupted_set, shuffle=False)

reader = tf.WholeFileReader()
key, value = reader.read(training_queue)
cor_key, cor_value = reader.read(cor_queue)

data = tf.image.decode_jpeg(value, channels = 3)
cor_data = tf.image.decode_jpeg(cor_value, channels = 3)

sess = tf.InteractiveSession()

sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())

coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)

for i in range (64):

    my_data = sess.run([key,data,cor_key,cor_data])
    im_list.append(my_data[1].reshape(1,-1))
    key_list.append(my_data[0])
    cor_im_list.append(my_data[3].reshape(1,-1))
    cor_key_list.append(my_data[2])

for j in range(my_times):
        _, y =  sess.run([train_step,h_y],feed_dict={x: cor_im_list, y_: im_list})


print 'finished training NN'
coord.request_stop()
coord.join(threads)
这个很好用

现在我想测试我的数据集:

ressu = []
test_im_list = []
test_key_list = []

# I have 50 images in 50 folders (each folder contains the 64 patches of the image)
for i in range(50):

    path = 'randomize_text/permutated_data/perm_test_'  + str(i) + '/*.jpg'
    testing_set =  glob.glob(path)
    testing_queue = tf.train.string_input_producer(testing_set, shuffle=False)

    reader = tf.WholeFileReader()

    test_key, test_value = reader.read(testing_queue)

    test_data = tf.image.decode_jpeg(test_value, channels = 3)

    for j in range (64):
        print j
        my_data = sess.run([test_key,test_data])
        test_im_list.append(my_data[1].reshape(1,-1))
        test_key_list.append(my_data[0])

    psi =  sess.run(y,feed_dict={x: test_im_list})
    ressu.append(psi)
如果在完成NN的训练后将此代码放在正确的位置,程序将变得无响应,我的猜测是我不使用坐标和线程,因此我无法处理大型集合(即使在关闭线程之前将其放在正确的位置)。如果我以加载训练集的方式加载,我只能为一个图像加载,这是不够的,我需要加载所有图像

如何使用测试集测试经过训练的NN

谢谢