У меня есть тензор данных, который является выводом net в Tensorflow, однако я хочу переформатировать его в пакет большего размера, состоящий из элементов исходного тензора. Это было не очень ясно, поэтому предположим, что вывод моего net - это тензор с формой (10, 1000, 1) - (batch_size, length, features), и я хочу переформатировать его так, чтобы теперь у меня ( 500, 10, 1), которые представляют собой 500 векторов длины десять из исходного набора данных.
Я знаком с 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(...)
Я упоминаю об этом, поскольку не уверен, что переформатирование данных в этом контексте приведет к беспорядку до обучения.