chrisdonahue / wavegan

WaveGAN: Learn to synthesize raw audio with generative adversarial networks
MIT License
1.32k stars 282 forks source link

How to generate wav sample from trained chpt files v2, I cannot find object 'z:0' and 'G_z_spec:0' #89

Open takeofuture opened 3 years ago

takeofuture commented 3 years ago

For Sample model trained by V1 and downloaded from https://s3.amazonaws.com/wavegan-v1/models I can see the tensor object Tensor("z:0", shape=(?, 100), dtype=float32) as well as 'G_z:0' and 'G_z_spec:0' Thus I can execute

# Create 50 random latent vectors z
_z = (np.random.rand(50, 100) * 2.) - 1
# Synthesize G(z)
z = graph.get_tensor_by_name('z:0')
G_z = graph.get_tensor_by_name('G_z:0')
_G_z = sess.run(G_z, {z: _z})
# Play audio in notebook
display(Audio(_G_z[0, :, 0], rate=16000))

I can execute colab sample https://colab.research.google.com/drive/1e9o2NB2GDDjadptGr3rwQwTcw-IrFOnm

But I cannot find any z:0 and G_z_spec:0 from ckpt files trained by V2 using Drum sound effects (one of sample) Also I can get spectrum like colab sample as well from chpt fies trained by train_wavgan.py (without executing train_specgan.py)? Do you have Colab sample on V2 as well?

Tensor("loader/normalize_element/component_0:0", shape=(2350,), dtype=string)
Tensor("loader/TensorSliceDataset:0", shape=(), dtype=variant)
Tensor("loader/buffer_size:0", shape=(), dtype=int64)
Tensor("loader/seed:0", shape=(), dtype=int64)
Tensor("loader/seed2:0", shape=(), dtype=int64)
Tensor("loader/ShuffleDataset:0", shape=(), dtype=variant)
Tensor("loader/count:0", shape=(), dtype=int64)
Tensor("loader/RepeatDataset:0", shape=(), dtype=variant)
Tensor("loader/num_parallel_calls:0", shape=(), dtype=int32)
Tensor("loader/ParallelMapDataset:0", shape=(), dtype=variant)
Tensor("loader/FlatMapDataset:0", shape=(), dtype=variant)
Tensor("loader/buffer_size_1:0", shape=(), dtype=int64)
Tensor("loader/seed_1:0", shape=(), dtype=int64)
Tensor("loader/seed2_1:0", shape=(), dtype=int64)
Tensor("loader/ShuffleDataset_1:0", shape=(), dtype=variant)
Tensor("loader/batch_size:0", shape=(), dtype=int64)
Tensor("loader/drop_remainder:0", shape=(), dtype=bool)
Tensor("loader/BatchDatasetV2:0", shape=(), dtype=variant)
Tensor("loader/buffer_size_2:0", shape=(), dtype=int64)
Tensor("loader/PrefetchDataset:0", shape=(), dtype=variant)
Tensor("loader/Const:0", shape=(), dtype=string)
Tensor("loader/WrapDatasetVariant:0", shape=(), dtype=variant)
Tensor("loader/GeneratorDataset:0", shape=(), dtype=variant, device=/device:GPU:0)
Tensor("loader/buffer_size_3:0", shape=(), dtype=int64)
Tensor("loader/PrefetchDataset_1:0", shape=(), dtype=variant)
Tensor("loader/OneShotIterator:0", shape=(), dtype=resource)
Tensor("loader/IteratorToStringHandle:0", shape=(), dtype=string)
Tensor("loader/IteratorGetNext:0", shape=(64, 16384, 1, 1), dtype=float32)
Tensor("loader/strided_slice/stack:0", shape=(3,), dtype=int32)
Tensor("loader/strided_slice/stack_1:0", shape=(3,), dtype=int32)
Tensor("loader/strided_slice/stack_2:0", shape=(3,), dtype=int32)
Tensor("loader/strided_slice:0", shape=(64, 16384, 1), dtype=float32)
Tensor("random_uniform/shape:0", shape=(2,), dtype=int32)
Tensor("random_uniform/min:0", shape=(), dtype=float32)
Tensor("random_uniform/max:0", shape=(), dtype=float32)
Tensor("random_uniform/RandomUniform:0", shape=(64, 100), dtype=float32)
Tensor("random_uniform/sub:0", shape=(), dtype=float32)
Tensor("random_uniform/mul:0", shape=(64, 100), dtype=float32)
Tensor("random_uniform:0", shape=(64, 100), dtype=float32)
Tensor("G/Shape:0", shape=(2,), dtype=int32)
~~~~
Tensor("G/upconv_4/strided_slice:0", shape=(64, 16384, 1), dtype=float32)
Tensor("G/Tanh:0", shape=(64, 16384, 1), dtype=float32)
Tensor("x/sample_rate:0", shape=(), dtype=float32)
Tensor("x/tag:0", shape=(), dtype=string)
Tensor("x:0", shape=(), dtype=string)
Tensor("G_z/sample_rate:0", shape=(), dtype=float32)
Tensor("G_z/tag:0", shape=(), dtype=string)
Tensor("G_z:0", shape=(), dtype=string)
Tensor("strided_slice/stack:0", shape=(3,), dtype=int32)
~~~
Tensor("mul_1:0", shape=(), dtype=float32)
Tensor("add_1:0", shape=(), dtype=float32)
Tensor("G_loss/tags:0", shape=(), dtype=string)
Tensor("G_loss:0", shape=(), dtype=string)
Tensor("D_loss/tags:0", shape=(), dtype=string)
Tensor("D_loss:0", shape=(), dtype=string)
~~~
Tensor("save/Assign_76:0", shape=(), dtype=int64_ref)
takeofuture commented 3 years ago

Now I guess I understand In colab, model.ckpt.index model.ckpt.data-00000-of-00001

I shoudl used the generated file under "train" directory. But I should use "train/ifer/infer.meta" for infer.meta I replaced the meta file and I can regenerate now.

I misunderstood the infer.meta file (I was using by renaming the meta file under train directory) You can close this case

Thank you!

!wget https://s3.amazonaws.com/wavegan-v1/models/timit.ckpt.index -O model.ckpt.index
  !wget https://s3.amazonaws.com/wavegan-v1/models/timit.ckpt.data-00000-of-00001 -O model.ckpt.data-00000-of-00001
  !wget https://s3.amazonaws.com/wavegan-v1/models/timit_infer.meta -O infer.meta