Почему эта тестовая функция не выводит изображение? Учебник по pokeGAN - PullRequest
0 голосов
/ 10 января 2019

Я новичок в написании кода на Python и использую тензор потока, но, как говорится, это может быть глупым вопросом. Я следовал учебнику pokeGAN , написанному Сираджем, и он не прокомментировал функцию тестирования. Я обучил модель, но когда я раскомментирую тестовую функцию, она просто выходит с кодом 0 и не дает мне изображения, которое она могла сгенерировать. Я знаю, что код выхода 0 означает, что ошибок не было, но мне любопытно, почему не генерируется изображение. Разве функция просто не говорит ей генерировать изображение? Есть ли что-то еще, что нужно раскомментировать (или прокомментировать), чтобы оно работало правильно? Любая помощь будет отличной.

Вот ссылка на github для всего кода: pokeGAN

Вот фактическая функция теста:

def test():
random_dim = 100
with tf.variable_scope('input'):
    real_image = tf.placeholder(tf.float32, shape=[None, HEIGHT, WIDTH, CHANNEL], name='real_image')
    random_input = tf.placeholder(tf.float32, shape=[None, random_dim], name='rand_input')
    is_train = tf.placeholder(tf.bool, name='is_train')

# wgan
fake_image = generator(random_input, random_dim, is_train)
real_result = discriminator(real_image, is_train)
fake_result = discriminator(fake_image, is_train, reuse=True)
sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
variables_to_restore = slim.get_variables_to_restore(include=['gen'])
print(variables_to_restore)
saver = tf.train.Saver(variables_to_restore)
ckpt = tf.train.latest_checkpoint('./model/' + version)
saver.restore(sess, ckpt)

1 Ответ

0 голосов
/ 14 июня 2019

Ваш код пропускает некоторую информацию, чтобы создать изображение и сохранить его.

 def test():
     random_dim = 100
     with tf.variable_scope('input'):
         real_image = tf.placeholder(tf.float32, shape = [None, HEIGHT, WIDTH, CHANNEL], name='real_image')
         random_input = tf.placeholder(tf.float32, shape=[None, random_dim], name='rand_input')
         is_train = tf.placeholder(tf.bool, name='is_train')

 # wgan
    fake_image = generator(random_input, random_dim, is_train)
    real_result = discriminator(real_image, is_train)
    fake_result = discriminator(fake_image, is_train, reuse=True)
    sess = tf.InteractiveSession()
    sess.run(tf.global_variables_initializer())
    variables_to_restore = slim.get_variables_to_restore(include=['gen'])
    print(variables_to_restore)
    saver = tf.train.Saver(variables_to_restore)
    ckpt = tf.train.latest_checkpoint('./model/' + version)
    saver.restore(sess, ckpt)

 #image creation
    sample_noise = np.random.uniform(-1.0, 1.0, size=[64, random_dim]).astype(np.float32)
    imgtest = sess.run(fake_image, feed_dict={random_input: sample_noise, is_train: False})

    save_images(imgtest, [8,8] ,newPoke_path + '/epoch'  + 'image.jpg')
...