dist.to_csv(csv) tag = imgdb[1].lstrip("img_dig/") pdict[(imgdb[0], tag)] = pd.read_csv(csv, header=None) #pdict[(8,"MacGill Calibrated")] = BPV.read_distribution_csv("p.macgill.csv") tot_patterns = 512 N = 50 W = 0.05 #rate n_plots = len(pdict.keys()) fig = plt.plot() f, axarr = plt.subplots(n_plots, 1, sharex=True) i = 0 for imgdb, p in sorted(pdict.items()): n = len(p) if n < tot_patterns: print("WARNING: probability vector's {2} length is {0}<{1}".format( n, tot_patterns, imgdb[1])) p_array = np.array(p.ix[:, 1]) exact_solver = BPV.BPV("exact", n, N, W, p_array) exact_solver.solve() sol = exact_solver.solution_indexes() axarr[i].set_title(imgdb[1]) axarr[i].plot(p_array) for point in sol: axarr[i].plot(sol, [0] * len(sol), 'or') i += 1 plt.show()
import BPV import pattern_manipulation as pm import numpy as np import matplotlib.pyplot as plt import pandas as pd import ipdb n = 10 N = 5 W = 0.025 epsilon = 1000 df = BPV.Data() df.read_csv("pixel.dist.csv", False) df.df.sort_index(by="p", inplace=True, ascending=False) df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True) df = df.data_head(n) #p = np.zeros(2*n) #for i in range(2*n): # p[i] = df.df['p'][i%n] #p /= p.sum() #df = BPV.Data(pd.DataFrame(p, columns=['p'])) #df.df['plog1onp'] = df.df['p']*np.log(1/df.df['p']) #df.df.sort_index(by='p',inplace=True,ascending=False) #df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True) min_entropy = df.df['plog1onp'].min() c = 2 * N / (epsilon * min_entropy) print("\n c = ", c, "\n\n") scaler = lambda x: (1 / c) * (int(c * x) + 1)
import BPV import pattern_manipulation as pm import numpy as np import matplotlib.pyplot as plt import pandas as pd import ipdb n = 10 N = 5 W = 0.025 data = BPV.Data() data.read_csv("pixel.dist.csv", False) data.df.sort_index(by="p", inplace=True, ascending=False) data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True) dftmp = data.data_head(n).df p = np.zeros(2 * n) for i in range(2 * n): p[i] = dftmp['p'][i % n] p /= p.sum() df = BPV.Data(pd.DataFrame(p, columns=['p'])) df.df['plog1onp'] = df.df['p'] * np.log(1 / df.df['p']) df.df.sort_index(by='p', inplace=True, ascending=False) df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True) prbl = BPV.BPV("decgraphV", df, N, W, time_solver=False) prbl.solve() #cProfile.run('prbl.solve()',sort=1) prbl.pprint_solution()
df = BPV.Data() df.read_csv("pixel.dist.csv",False) df.df.sort_index(by="p",inplace=True,ascending=True) df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True) N = 50 W = 0.025 variances = [0.00001,0.00006,0.0001,0.001] l = len(variances) in_errs = [0]*l out_errs = [0]*l for i in range(l): df_err = df.artificial_noise1(variances[i]) pulp_correct = BPV.BPV("pulp",df,N,W,time_solver=False) pulp_correct.solve() pulp_correct.pprint_solution() pulp_error = BPV.BPV("pulp",df_err,N,W,time_solver=False) pulp_error.solve() pulp_error.pprint_solution() in_errs[i] = BPV.distance1(df.df['p'],df_err.df['p']) out_errs[i] = np.abs(pulp_correct.solution_entropy - pulp_error.solution_entropy) print(in_errs[i], out_errs[i]) print("------------------")
import BPV import pattern_manipulation as pm import numpy as np import matplotlib.pyplot as plt import pandas as pd import cProfile n = 100 N=20 W=0.03 #rate data = BPV.Data() data.read_csv("pixel.dist.csv",False) data.df.sort_index(by="p",inplace=True,ascending=True) data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True) data_head = data.data_head(n) #data.df.sort_index(by="p") #prbl_pulp = BPV.BPV("pulp",data_head,N,W,time_solver=False) #prbl_pulp.solve() #prbl_pulp.pprint_solution() # prbl_decH = BPV.BPV("decgraphH",data_head,N,W,time_solver=True) prbl_decH.solve() #cProfile.run('prbl_decH.solve()',sort=1) prbl_decH.pprint_solution() #prbl_decW = BPV.BPV("decgraphW",data_head,N,W,time_solver=False) #prbl_decW.solve() ##cProfile.run('prbl_decW.solve()',sort=1)
import BPV import pattern_manipulation as pm import numpy as np import pandas as pd N, W = 10, 0.1504 data = BPV.Data() data.read_csv("pixel.dist.csv", False) data.df.sort_index(by="p", inplace=True, ascending=True) data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True) prbl_pulp = BPV.BPV("pulp", data, N, W, time_solver=False) prbl_pulp.solve() prbl_pulp.pprint_solution() prbl_pulp = BPV.BPV("heuristic", data, N, W, time_solver=False) prbl_pulp.solve() prbl_pulp.pprint_solution()
data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True) dftmp = data.data_head(n).df p = np.zeros(2*n) for i in range(2*n): p[i] = dftmp['p'][i%n] p /= p.sum() df = BPV.Data(pd.DataFrame(p, columns=['p'])) df.df['plog1onp'] = df.df['p']*np.log(1/df.df['p']) df.df.sort_index(by='p',inplace=True,ascending=False) df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True) prbl = BPV.BPV("decgraphV",df,N,W,time_solver=False) prbl.solve() #cProfile.run('prbl.solve()',sort=1) prbl.pprint_solution() prbl = BPV.BPV("pulp",df,N,W,time_solver=False) prbl.solve() prbl.pprint_solution() sol1,sol2,sol3 = 'decgraphV0','decgraphV1','pulp' sols = (sol1,sol2,sol3) print("\n Sup distances between:") for s1 in sols: for s2 in sols: print("\n {0} and {1}: {2}".format(s1,s2, BPV.distance_solutions(df.df[s1],df.df[s2])[0]))
import BPV import pattern_manipulation as pm import numpy as np import matplotlib.pyplot as plt import pandas as pd n = 10 N = 5 W = 0.025 multiplier = 4 data = BPV.Data() data.read_csv("pixel.dist.csv", False) data.df.sort_index(by="p", inplace=True, ascending=False) data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True) dftmp = data.data_head(n).df p = np.zeros(multiplier * n) for i in range(multiplier * n): p[i] = dftmp['p'][i % n] p /= p.sum() df = BPV.Data(pd.DataFrame(p, columns=['p'])) df.df['plog1onp'] = df.df['p'] * np.log(1 / df.df['p']) df.df.sort_index(by='p', inplace=True, ascending=False) df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True) prbl_decW = BPV.BPV("decgraphW", df, N, W, time_solver=False) prbl_decW.solve() #cProfile.run('prbl.solve()',sort=1) prbl_decW.pprint_solution()
#import sys #sys.path.append('/usr/lib/python3.4/site-packages') import matplotlib #%matplotlib inline matplotlib.use('TkAgg') import BPV import pattern_manipulation as pm import numpy as np import matplotlib.pyplot as plt import pandas as pd df = BPV.Data() df.read_csv("pixel.dist.csv", False) df.df.sort_index(by="p", inplace=True, ascending=True) df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True) N = 50 W = 0.025 variances = [0.00001, 0.00006, 0.0001, 0.001] l = len(variances) in_errs = [0] * l out_errs = [0] * l for i in range(l): df_err = df.artificial_noise1(variances[i]) pulp_correct = BPV.BPV("pulp", df, N, W, time_solver=False) pulp_correct.solve() pulp_correct.pprint_solution() pulp_error = BPV.BPV("pulp", df_err, N, W, time_solver=False) pulp_error.solve()