def showPicture(test_length, path): if not os.path.exists(path): os.makedirs(path) data_gen.init_data(task, test_length, 1, n_input) while len(data_gen.train_set[task][test_length])==0: test_length += 1 data_gen.init_data(task, test_length, 1, n_input) data_gen.resetCounters() with tf.Graph().as_default(),tf.device('/cpu:0'): tester = DNGPU(n_hidden, [test_length], n_input, [1], n_output, dropout_keep_prob) tester.createTestGraph(test_length) saver = tf.train.Saver(tf.trainable_variables()) with tf.Session() as sess: sess.run(tf.initialize_all_variables()) saver.restore(sess, model_file) if not os.path.exists(path): os.makedirs(path) batch_xs, batch_ys = genTestData(test_length, 1) print batch_xs, batch_ys mem = tester.getAllMem(sess, batch_xs, batch_ys) mem = np.squeeze(mem, 1) width = mem.shape[1] height = mem.shape[0] for unit in range(n_hidden): img=np.zeros((height,width),dtype=np.float32) for x in range(width): for y in range(height): img[y,x]=mem[y, x,unit] mpimg.imsave(path+"/frame"+str(unit)+".png",img, cmap='gray')
# create execution trace images showPicture(200, image_path) # test generalization to longer examples test_length = 7 test_examples = 1024 while test_length < max_test_length: if test_length > 4001: test_length = 4001 if len(data_gen.test_set[task][test_length]) == 0: data_gen.init_data(task, test_length, test_data_size, n_input) while len(data_gen.test_set[task][test_length]) == 0: test_length += 1 data_gen.init_data(task, test_length, test_data_size, n_input) data_gen.resetCounters() batchSize = 1 if test_length < 2000: batchSize = 16 if test_length < 800: batchSize = 128 with tf.Graph().as_default(): #, tf.device('/cpu:0'): tester = DNGPU(n_hidden, [test_length], n_input, [batchSize], n_output, dropout_keep_prob) tester.createTestGraph(test_length) saver = tf.train.Saver(tf.trainable_variables()) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) saver.restore(sess, model_file) errors, seq_errors, total = 0, 0, 0 for iter in range(test_examples // batchSize):