Ich arbeite das neue TFGAN Modul in tensorflow bei der Umsetzung TFGAN ModuleImplementierung neuer TFGAN Modul
Hat eigentlich jemand in der Lage gewesen, um es zu arbeiten? Ich laufe in Fragen tf.random.noise in einen simplen Generator vorbei:
tfgan = tf.contrib.gan
noise = tf.random_normal([BATCH_SIZE, 28,28])
def my_generator(z, out_dim=28*28, n_units=128, reuse=False, alpha=0.01):
with tf.variable_scope('generator', reuse=reuse):
# Hidden layer
h1 = tf.layers.dense(z, n_units, activation=None)
# Leaky ReLU
h1 = tf.maximum(h1, alpha*h1)
# Logits and tanh output
logits = tf.layers.dense(h1, out_dim, activation=None)
out = tf.nn.tanh(logits)
return out, logits
dann die tfgan Aufruf:
# Build the generator and discriminator.
gan_model = tfgan.gan_model(
generator_fn=my_generator,
discriminator_fn=my_discriminator,
real_data=images,
generator_inputs=noise)
Error: "tuple' object has no attribute 'dtype'"
und deutete auf meine generator_inputs Linie.
(Als Randbemerkung, ich fast alle meine NN Arbeit an der keras Ebene Abstraktion getan haben, so dass ich weiß, dass dies eine einfache Frage ist)
EDIT und PRO KOMMENTAR VON kvorobiev (Danke sehr viel)
-Code ohne Datengenerator (im Grunde die gleiche wie die Post auf github)
tfgan = tf.contrib.gan
noise = tf.random_normal([28,28])
def unconditional_generator(z, out_dim=28*28, n_units=128, reuse=False, alpha=0.01):
with tf.variable_scope('generator', reuse=reuse):
# Hidden layer
h1 = tf.layers.dense(z, n_units, activation=None)
# Leaky ReLU
h1 = tf.maximum(h1, alpha*h1)
# Logits and tanh output
logits = tf.layers.dense(h1, out_dim, activation=None)
out = tf.nn.tanh(logits)
return out, logits
def unconditional_discriminator(x, n_units=128, reuse=False, alpha=0.01):
with tf.variable_scope('discriminator', reuse=reuse):
# Hidden layer
h1 = tf.layers.dense(x, n_units, activation=None)
# Leaky ReLU
h1 = tf.maximum(h1, alpha*h1)
logits = tf.layers.dense(h1, 1, activation=None)
out = tf.nn.sigmoid(logits)
return out, logits
# Build the generator and discriminator.
gan_model = tfgan.gan_model(
generator_fn= unconditional_generator, # you define
discriminator_fn = unconditional_discriminator, # you define
real_data=img_generator,
generator_inputs=noise)
# Build the GAN loss.
gan_loss = tfgan.gan_loss(
gan_model,
generator_loss_fn=tfgan_losses.wasserstein_generator_loss,
discriminator_loss_fn=tfgan_losses.wasserstein_discriminator_loss)
# Create the train ops, which calculate gradients and apply updates to weights.
train_ops = tfgan.gan_train_ops(
gan_model,
gan_loss,
generator_optimizer=tf.train.AdamOptimizer(gen_lr, 0.5),
discriminator_optimizer=tf.train.AdamOptimizer(dis_lr, 0.5))
# Run the train ops in the alternating training scheme.
tfgan.gan_train(
train_ops,
hooks=[tf.train.StopAtStepHook(num_steps=100)],
logdir=FLAGS.train_log_dir)
Traceback:
-------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-3-2c570c5257d0> in <module>()
37 discriminator_fn = unconditional_discriminator, # you define
38 real_data=img_generator,
---> 39 generator_inputs=noise)
40
41 # Build the GAN loss.
~/tf_1.4/lib/python3.5/site-packages/tensorflow/contrib/gan/python/train.py in gan_model(generator_fn, discriminator_fn, real_data, generator_inputs, generator_scope, discriminator_scope, check_shapes)
105 with variable_scope.variable_scope(discriminator_scope) as dis_scope:
106 discriminator_gen_outputs = discriminator_fn(generated_data,
--> 107 generator_inputs)
108 with variable_scope.variable_scope(dis_scope, reuse=True):
109 real_data = ops.convert_to_tensor(real_data)
<ipython-input-3-2c570c5257d0> in unconditional_discriminator(x, n_units, reuse, alpha)
19 with tf.variable_scope('discriminator', reuse=reuse):
20 # Hidden layer
---> 21 h1 = tf.layers.dense(x, n_units, activation=None)
22
23 # Leaky ReLU
~/tf_1.4/lib/python3.5/site-packages/tensorflow/python/layers/core.py in dense(inputs, units, activation, use_bias, kernel_initializer, bias_initializer, kernel_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, bias_constraint, trainable, name, reuse)
245 trainable=trainable,
246 name=name,
--> 247 dtype=inputs.dtype.base_dtype,
248 _scope=name,
249 _reuse=reuse)
AttributeError: 'tuple' object has no attribute 'dtype'
Tatsächlich trat ein Fehler beim 'tfgan.gan_model' Aufruf auf. Hinterlegen Sie die vollständige Fehlerrückverfolgung und den Code für alle Argumente von 'tfgan.gan_model'. – kvorobiev
Gepostet - Vielen Dank im Voraus. – jsl2