var_energy_data = [] n = n_samples[1] if Is_train == False: f = open('./DATA/8by8lattices.pkl', 'rb') if (f.read(2) == '\x1f\x8b'): f.seek(0) gzip.GzipFile(fileobj=f) else: f.seek(0) training_data = pickle.load(f, encoding="latin1") training_data = np.reshape(training_data,(320000, 64)) for i in range(0,n_samples[0],4): Magnetization = get_parameters.get_mean_magnetization(gsample[i*n_samples[1]:(i+1)*n_samples[1]]) Magnetization_direction = get_parameters.get_magnetization_direction(gsample[i*n_samples[1]:(i+1)*n_samples[1]]) energy = get_parameters.get_energy(gsample[i*n_samples[1]:(i+1)*n_samples[1]]) print(i) if Is_train == False: fig1 = plt.figure(1) plt.plot(zsample[:n_samples[1],1],Magnetization[0][0],label = (T_vals[i])) fig2 = plt.figure(2) plt.plot(zsample[:n_samples[1],1],Magnetization_direction,label = (T_vals[i])) if Is_train == True: lattices = np.array(training_data[i*10000:i*10000+n]).reshape(n,lattice_size,lattice_size) energy_data = get_parameters.get_energy(lattices) thetas_data = get_parameters.get_magnetization_direction(lattices) [mag_data,mag_mean,mag_std] = get_parameters.get_mean_magnetization(lattices) plt.subplot(3,1,1) plt.hist(Magnetization[0][0][i*n_samples[1]:(i+1)*n_samples[1]],bins =20,color='b',range=[0, 1],alpha=0.5) plt.hist(mag_data ,bins =20,color='g',range=[0, 1],alpha=0.5) plt.ylabel('Magnetization ')
f = open('./DATA/16and16lattices.pkl', 'rb') if (f.read(2) == '\x1f\x8b'): f.seek(0) gzip.GzipFile(fileobj=f) else: f.seek(0) training_inputs = pickle.load(f, encoding="latin1") training_inputs = np.reshape(training_inputs,(n_temps*10000, lattice_size**2)) for i in range(0,n_temps): t = np.repeat(B_vals[i],n_z*n).reshape(n,n_z) gsample = sess.run(generator(z,reuse=True,bs = n), feed_dict={z_rand:zsample,temp:t}) gsample = gsample.reshape(n,lattice_size,lattice_size) print(B_vals[i], 360*np.mean(gsample[0]),360*np.std(gsample[0])) Magnetization = get_parameters.get_mean_magnetization(gsample) Magnetization_direction = get_parameters.get_magnetization_direction(gsample) energy = get_parameters.get_energy(gsample) if Is_train == k: fig1 = plt.figure(1) plt.plot(Magnetization[0][0],label = (B_vals[i])) fig2 = plt.figure(2) plt.plot(Magnetization_direction,label = (B_vals[i])) if Is_train == l: lattices = np.array(training_inputs[i*10000+8000:i*10000+n+8000]).reshape(n,lattice_size,lattice_size) energy_data = get_parameters.get_energy(lattices) thetas_data = get_parameters.get_magnetization_direction(lattices) [mag_data,mag_mean,mag_std]=get_parameters.get_mean_magnetization(lattices) mean_magnetization.append(Magnetization[1]) var_magnetization.append(Magnetization[2]) mean_magnetization_data.append(mag_mean) var_magnetization_data.append(mag_std)
feed_dict={fully_connected_decoder1: Gsample}) gsample = sess.run(x_hat, feed_dict={fully_connected_decoder2: Gsample2}) # Gsamplemu = sess.run(x_mu, feed_dict={fully_connected_decoder2: Gsample2}) # Gsamplesig = sess.run(x_log_sigma_sq,feed_dict={fully_connected_decoder2:Gsample2}) # gsample = sess.run(tf.random_normal(shape = tf.shape(Gsamplemu) ,mean = Gsamplemu,stddev = tf.sqrt(tf.exp(Gsamplesig)), dtype = tf.float32 ))#tf.sqrt(tf.exp(Gsamplesig)) # print(360*Gsamplemu[:10], Gsamplesig[:10]) gsample = gsample.reshape(zsample.shape[0], lattice_size, lattice_size) print("Specific Heat %f") # for i in range(n_samples): # print(get_parameters.get_specific_heat(gsample[i],zsample[i])) print("Mean magnetization and its Standard Deviation") mean_magnetization = [] Magnetization = get_parameters.get_mean_magnetization(gsample) Magnetization_direction = get_parameters.get_magnetization_direction( gsample) energy = get_parameters.get_energy(gsample) print(energy) if n_z == 1: plt.plot(zsample, Magnetization[0][0]) #all values plt.xlabel('Latent Variable value', fontsize=12) plt.ylabel('Magnetization of a single sample generated by the network', fontsize=10) plt.savefig('mag_vs_temp.png') plt.show() plt.plot(zsample, Magnetization_direction) plt.show() plt.hist(energy, bins=100) plt.savefig('energy_vs_LV.png') plt.show() elif n_z == 2: # LV[0] Magnetization LV[1] Temperature
gsample = gsample.reshape(zsample.shape[0], lattice_size, lattice_size) print("Specific Heat %f") print(360 * np.mean(Gsamplemu), 360 * np.std(Gsamplemu)) print(360 * np.mean(-1.0 * Gsamplesig)) print("Mean magnetization and its Standard Deviation") # for i in range(n_samples): # print(get_parameters.get_specific_heat(gsample[i],zsample[i])) mean_magnetization = [] Magnetization = get_parameters.get_mean_magnetization(gsample) Magnetization_direction = get_parameters.get_magnetization_direction( gsample) energy = get_parameters.get_energy(gsample) if n_z == 1: for d in range(n_samples[0]): plt.plot(zsample[:n_samples[1], 1], Magnetization[0][0][d * n_samples[1]:(d + 1) * n_samples[1]], label=d) #all values plt.xlabel('Latent Variable value', fontsize=12) plt.ylabel('Magnetization of a single sample generated by the network', fontsize=10) plt.legend() plt.show() for d in range(n_samples[0]): plt.plot( zsample[:n_samples[1], 1],