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