diff --git a/AirShower_WGAN/ShowerGAN.py b/AirShower_WGAN/ShowerGAN.py index f879d906fa88e3de2b498b16459703688bafa651..dcf5e323a058b57c18e0244d49f2986ef0d16228 100644 --- a/AirShower_WGAN/ShowerGAN.py +++ b/AirShower_WGAN/ShowerGAN.py @@ -8,7 +8,6 @@ from keras.layers.advanced_activations import LeakyReLU from functools import partial from keras.utils import plot_model import keras.backend.tensorflow_backend as KTF -import glob import utils import tensorflow as tf @@ -16,22 +15,19 @@ import tensorflow as tf KTF.set_session(utils.get_session()) # Allows 2 jobs per GPU, Please do not change this during the tutorial log_dir="." -EPOCHS = 3 +EPOCHS = 10 GRADIENT_PENALTY_WEIGHT = 10 BATCH_SIZE = 256 NCR = 5 latent_size = 512 -# load trainings data - -filenames=glob.glob("*.npz") -shower_maps, Energy = utils.ReadInData(filenames) -#shower_maps = shower_maps[:,:,:,1,np.newaxis] -#np.savez("Data", Energy=Energy, shower_maps=shower_maps) -Energy = Energy/np.max(Energy) +# load trainings data +shower_maps, Energy = utils.ReadInData() +N = shower_maps.shape[0] +# plot real signal patterns utils.plot_multiple_signalmaps(shower_maps[:,:,:,0], log_dir=log_dir, title='Footprints', epoch='Real') -N = shower_maps.shape[0] + class RandomWeightedAverage(_Merge): """Takes a randomly-weighted average of two tensors. In geometric terms, this outputs a random point on the line @@ -116,6 +112,7 @@ critic_loss = [] iterations_per_epoch = N//((NCR+1)*BATCH_SIZE) for epoch in range(EPOCHS): print "epoch: ", epoch + # plot berfore each epoch generated signal patterns generated_map = generator.predict_on_batch(np.random.randn(BATCH_SIZE, latent_size)) utils.plot_multiple_signalmaps(generated_map[:,:,:,0], log_dir=log_dir, title='Generated Footprints Epoch: ', epoch=str(epoch)) for iteration in range(iterations_per_epoch): @@ -131,6 +128,6 @@ for epoch in range(EPOCHS): utils.plot_loss(critic_loss, name="critic", log_dir=log_dir) utils.plot_loss(generator_loss, name="generator",log_dir=log_dir) -# plot some generated figures +# plot some generated signal patterns generated_map = generator.predict(np.random.randn(BATCH_SIZE, latent_size)) utils.plot_multiple_signalmaps(generated_map[:,:,:,0], log_dir=log_dir, title='Generated Footprints', epoch='Final') diff --git a/AirShower_WGAN/utils.py b/AirShower_WGAN/utils.py index ef1772ccea69ee1fb759f44b8f8f55fc773a5539..886c619531c5c5c67f71df2f5467b4a2cb49f141 100644 --- a/AirShower_WGAN/utils.py +++ b/AirShower_WGAN/utils.py @@ -15,17 +15,11 @@ def get_session(gpu_fraction=0.40): return tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) -def ReadInData(filenames): +def ReadInData(): '''Reads in the trainings data''' - N = 100000 *len(filenames) - a = 100000 - shower_maps = np.zeros(N*9*9*1).reshape(N,9,9,1) - Energy = np.zeros(N) - for i in range(0, len(filenames)): - data = np.load(filenames[i]) - Energy[a*i:a*(i+1)] = data['Energy'] - shower_maps[a*i:a*(i+1)] = data['shower_maps'].reshape(a,9,9,1) - return shower_maps, Energy + filenames="/net/scratch/JGlombitza/Public/HAPWorkshop2018/data/Data.npz" + data = np.load(filenames) + return data['shower_maps'], data['Energy'] def make_trainable(model, trainable):