【发布时间】:2020-10-10 18:15:59
【问题描述】:
我有一个数据张量,它是 Tensorflow 中网络的输出,但是,我想将其重新格式化为由原始张量的元素组成的更大批量。那不是很清楚,所以假设我的网络的输出是一个形状为 (10, 1000, 1) - (batch_size, length, features) 的张量,我想重新格式化它,以便我现在有 (500, 10, 1) 是来自原始数据集的 500 个长度为 10 的向量。
我对 numpy 很熟悉,所以我只是打算使用它,但你只能将 numpy 与 EagerTensors 一起使用。我不确定这是否是一个额外的问题,但我正在尝试 GAN 网络,因此代码如下所示:
with tf.GradientTape() as gen_tape, tf.GradientTape() as disc_tape:
generated = generator(noise, training=True)
generated = reformat(generated)
fake_output = discriminator(generated, training=True)
real_output = discriminator(real, training=True)
gen_loss = generator_loss(fake_output)
disc_loss = discriminator_loss(real_output, fake_output)
gradients_of_generator = gen_tape.gradient(gen_loss, generator.trainable_variables)
gradients_of_discriminator = disc_tape.gradient(disc_loss, discriminator.trainable_variables)
generator_optimizer.apply_gradients(zip(gradients_of_generator, generator.trainable_variables))
discriminator_optimizer.apply_gradients(...)
我之所以提到这一点,是因为我不确定在这种情况下重新格式化数据是否会扰乱训练。
【问题讨论】:
标签: python tensorflow