986 lines
36 KiB
Julia
986 lines
36 KiB
Julia
|
include("aux_func.jl")
|
||
|
using LinearAlgebra
|
||
|
using Statistics
|
||
|
|
||
|
#=
|
||
|
Obtain energy data
|
||
|
=#
|
||
|
|
||
|
#mni_folder_1 = "ini_exp_data/"
|
||
|
|
||
|
|
||
|
mni_folder_100 = "exp_100_epochs/";
|
||
|
cif_folder_100 = "CIFAR_100_epoch/";
|
||
|
|
||
|
mni_folder_acc = "data_bounded/";
|
||
|
cif_folder_acc = "CIFAR_acc_bound/";
|
||
|
|
||
|
mni_folder_wat = "data_budget/";
|
||
|
cif_folder_wat = "CIFAR_energy_bound/";
|
||
|
|
||
|
mni_folder_est = "early_stop_res/";
|
||
|
cif_folder_est = "CIFAR_early_stop/";
|
||
|
|
||
|
bayes_model = "bayes";
|
||
|
freq_model = "freq";
|
||
|
w_type = "watt";
|
||
|
e_type = "exp";
|
||
|
|
||
|
#=
|
||
|
Load GPU data
|
||
|
=#
|
||
|
mni_100_bay_ene = getgpudata(mni_folder_100, bayes_model, w_type, "eo");
|
||
|
mni_100_fre_ene = getgpudata(mni_folder_100, freq_model, w_type, "eo");
|
||
|
cif_100_bay_ene = getgpudata(cif_folder_100, bayes_model, w_type, "eo");
|
||
|
cif_100_fre_ene = getgpudata(cif_folder_100, freq_model, w_type, "eo");
|
||
|
|
||
|
mni_acc_bay_ene = getgpudata(mni_folder_acc, bayes_model, w_type, "eo");
|
||
|
mni_acc_fre_ene = getgpudata(mni_folder_acc, freq_model, w_type, "eo");
|
||
|
cif_acc_bay_ene = getgpudata(cif_folder_acc, bayes_model, w_type, "eo");
|
||
|
cif_acc_fre_ene = getgpudata(cif_folder_acc, freq_model, w_type, "eo");
|
||
|
|
||
|
mni_wat_bay_ene = getgpudata(mni_folder_wat, bayes_model, w_type, "eo");
|
||
|
mni_wat_fre_ene = getgpudata(mni_folder_wat, freq_model, w_type, "eo");
|
||
|
cif_wat_bay_ene = getgpudata(cif_folder_wat, bayes_model, w_type, "eo");
|
||
|
cif_wat_fre_ene = getgpudata(cif_folder_wat, freq_model, w_type, "eo");
|
||
|
|
||
|
mni_est_bay_ene = getgpudata(mni_folder_est, bayes_model, w_type, "eo");
|
||
|
mni_est_fre_ene = getgpudata(mni_folder_est, freq_model, w_type, "eo");
|
||
|
cif_est_bay_ene = getgpudata(cif_folder_est, bayes_model, w_type, "eo");
|
||
|
cif_est_fre_ene = getgpudata(cif_folder_est, freq_model, w_type, "eo");
|
||
|
|
||
|
|
||
|
|
||
|
#=
|
||
|
Define CPU paths
|
||
|
=#
|
||
|
cif = "cifar";
|
||
|
mni = "mnist";
|
||
|
bay = "bayes";
|
||
|
wat = "cpu_watts";
|
||
|
frq = "freq";
|
||
|
ram = "ram_use";
|
||
|
_100 = "100";
|
||
|
acc = "acc";
|
||
|
es = "es";
|
||
|
wbud = "wbud";
|
||
|
|
||
|
#=
|
||
|
Load CPU data
|
||
|
=#
|
||
|
bay_cif_100_ene = readcpudata(cif, bay, wat, _100);
|
||
|
bay_mni_100_ene = readcpudata(mni, bay, wat, _100);
|
||
|
frq_cif_100_ene = readcpudata(cif, frq, wat, _100);
|
||
|
frq_mni_100_ene = readcpudata(mni, frq, wat, _100);
|
||
|
|
||
|
bay_cif_acc_ene = readcpudata(cif, bay, wat, acc);
|
||
|
bay_mni_acc_ene = readcpudata(mni, bay, wat, acc);
|
||
|
frq_cif_acc_ene = readcpudata(cif, frq, wat, acc);
|
||
|
frq_mni_acc_ene = readcpudata(mni, frq, wat, acc);
|
||
|
|
||
|
|
||
|
bay_cif_wbu_ene = readcpudata(cif, bay, wat, wbud);
|
||
|
bay_mni_wbu_ene = readcpudata(mni, bay, wat, wbud);
|
||
|
frq_cif_wbu_ene = readcpudata(cif, frq, wat, wbud);
|
||
|
frq_mni_wbu_ene = readcpudata(mni, frq, wat, wbud);
|
||
|
|
||
|
bay_mni_est_ene = readcpudata(mni, bay, wat, es);
|
||
|
bay_cif_est_ene = readcpudata(cif, bay, wat, es);
|
||
|
frq_cif_est_ene = readcpudata(cif, frq, wat, es);
|
||
|
frq_mni_est_ene = readcpudata(mni, frq, wat, es);
|
||
|
|
||
|
|
||
|
for s = 1:5
|
||
|
bay_cif_acc_ene[s] = round.(getcpuwatt(bay_cif_acc_ene[s]))
|
||
|
bay_cif_est_ene[s] = round.(getcpuwatt(bay_cif_est_ene[s]))
|
||
|
bay_cif_wbu_ene[s] = round.(getcpuwatt(bay_cif_wbu_ene[s]))
|
||
|
bay_cif_100_ene[s] = round.(getcpuwatt(bay_cif_100_ene[s]))
|
||
|
|
||
|
bay_mni_acc_ene[s] = round.(getcpuwatt(bay_mni_acc_ene[s]))
|
||
|
bay_mni_est_ene[s] = round.(getcpuwatt(bay_mni_est_ene[s]))
|
||
|
bay_mni_wbu_ene[s] = round.(getcpuwatt(bay_mni_wbu_ene[s]))
|
||
|
bay_mni_100_ene[s] = round.(getcpuwatt(bay_mni_100_ene[s]))
|
||
|
|
||
|
frq_cif_acc_ene[s] = round.(getcpuwatt(frq_cif_acc_ene[s]))
|
||
|
frq_cif_est_ene[s] = round.(getcpuwatt(frq_cif_est_ene[s]))
|
||
|
frq_cif_wbu_ene[s] = round.(getcpuwatt(frq_cif_wbu_ene[s]))
|
||
|
frq_cif_100_ene[s] = round.(getcpuwatt(frq_cif_100_ene[s]))
|
||
|
|
||
|
frq_mni_acc_ene[s] = round.(getcpuwatt(frq_mni_acc_ene[s]))
|
||
|
frq_mni_est_ene[s] = round.(getcpuwatt(frq_mni_est_ene[s]))
|
||
|
frq_mni_wbu_ene[s] = round.(getcpuwatt(frq_mni_wbu_ene[s]))
|
||
|
frq_mni_100_ene[s] = round.(getcpuwatt(frq_mni_100_ene[s]))
|
||
|
end
|
||
|
|
||
|
for s = 1:5
|
||
|
mni_100_bay_ene[s]["Ene"] = vcat(mni_100_bay_ene[s]["Ene"], bay_mni_100_ene[s])
|
||
|
mni_100_fre_ene[s]["Ene"] = vcat(mni_100_fre_ene[s]["Ene"], frq_mni_100_ene[s])
|
||
|
cif_100_bay_ene[s]["Ene"] = vcat(cif_100_bay_ene[s]["Ene"], bay_cif_100_ene[s])
|
||
|
cif_100_fre_ene[s]["Ene"] = vcat(cif_100_fre_ene[s]["Ene"], frq_cif_100_ene[s])
|
||
|
|
||
|
mni_acc_bay_ene[s]["Ene"] = vcat(mni_acc_bay_ene[s]["Ene"], bay_mni_acc_ene[s])
|
||
|
mni_acc_fre_ene[s]["Ene"] = vcat(mni_acc_fre_ene[s]["Ene"], frq_mni_acc_ene[s])
|
||
|
cif_acc_bay_ene[s]["Ene"] = vcat(cif_acc_bay_ene[s]["Ene"], bay_cif_acc_ene[s])
|
||
|
cif_acc_fre_ene[s]["Ene"] = vcat(cif_acc_fre_ene[s]["Ene"], frq_cif_acc_ene[s])
|
||
|
|
||
|
|
||
|
mni_wat_bay_ene[s]["Ene"] = vcat(mni_wat_bay_ene[s]["Ene"], bay_mni_wbu_ene[s])
|
||
|
mni_wat_fre_ene[s]["Ene"] = vcat(mni_wat_fre_ene[s]["Ene"], frq_mni_wbu_ene[s])
|
||
|
cif_wat_bay_ene[s]["Ene"] = vcat(cif_wat_bay_ene[s]["Ene"], bay_cif_wbu_ene[s])
|
||
|
cif_wat_fre_ene[s]["Ene"] = vcat(cif_wat_fre_ene[s]["Ene"], frq_cif_wbu_ene[s])
|
||
|
|
||
|
mni_est_bay_ene[s]["Ene"] = vcat(mni_est_bay_ene[s]["Ene"], bay_mni_est_ene[s])
|
||
|
mni_est_fre_ene[s]["Ene"] = vcat(mni_est_fre_ene[s]["Ene"], frq_mni_est_ene[s])
|
||
|
cif_est_bay_ene[s]["Ene"] = vcat(cif_est_bay_ene[s]["Ene"], bay_cif_est_ene[s])
|
||
|
cif_est_fre_ene[s]["Ene"] = vcat(cif_est_fre_ene[s]["Ene"], frq_cif_est_ene[s])
|
||
|
end
|
||
|
|
||
|
|
||
|
all_data_ene = Dict(
|
||
|
"mni" => Dict(
|
||
|
1 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
2 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
3 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
4 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
5 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
),
|
||
|
"cif" => Dict(
|
||
|
1 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
2 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
3 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
4 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
5 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
),
|
||
|
)
|
||
|
|
||
|
|
||
|
for s = 1:5
|
||
|
all_data_ene["mni"][s]["100"]["bay"] = sum(mni_100_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"MNIST Bayes Mean energy size $(s) 100: $(all_data_ene["mni"][s]["100"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["mni"][s]["100"]["frq"] = sum(mni_100_fre_ene[s]["Ene"])
|
||
|
println("MNIST Freq Mean energy size $(s) 100: $(all_data_ene["mni"][s]["100"]["frq"])")
|
||
|
all_data_ene["cif"][s]["100"]["bay"] = sum(cif_100_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"CIFAR Bayes Mean energy size $(s) 100: $(all_data_ene["cif"][s]["100"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["cif"][s]["100"]["frq"] = sum(cif_100_fre_ene[s]["Ene"])
|
||
|
println("CIFAR Freq Mean energy size $(s) 100: $(all_data_ene["cif"][s]["100"]["frq"])")
|
||
|
|
||
|
all_data_ene["mni"][s]["acc"]["bay"] = sum(mni_acc_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"MNIST Bayes Mean energy size $(s) Acc: $(all_data_ene["mni"][s]["acc"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["mni"][s]["acc"]["frq"] = sum(mni_acc_fre_ene[s]["Ene"])
|
||
|
println("MNIST Freq Mean energy size $(s) Acc: $(all_data_ene["mni"][s]["acc"]["frq"])")
|
||
|
all_data_ene["cif"][s]["acc"]["bay"] = sum(cif_acc_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"CIFAR Bayes Mean energy size $(s) Acc: $(all_data_ene["cif"][s]["acc"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["cif"][s]["acc"]["frq"] = sum(cif_acc_fre_ene[s]["Ene"])
|
||
|
println("CIFAR Freq Mean energy size $(s) Acc: $(all_data_ene["cif"][s]["acc"]["frq"])")
|
||
|
|
||
|
|
||
|
all_data_ene["mni"][s]["wat"]["bay"] = sum(mni_wat_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"MNIST Bayes Mean energy size $(s) Wat: $(all_data_ene["mni"][s]["wat"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["mni"][s]["wat"]["frq"] = sum(mni_wat_fre_ene[s]["Ene"])
|
||
|
println("MNIST Freq Mean energy size $(s) Wat: $(all_data_ene["mni"][s]["wat"]["frq"])")
|
||
|
all_data_ene["cif"][s]["wat"]["bay"] = sum(cif_wat_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"CIFAR Bayes Mean energy size $(s) Wat: $(all_data_ene["cif"][s]["wat"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["cif"][s]["wat"]["frq"] = sum(cif_wat_fre_ene[s]["Ene"])
|
||
|
println("CIFAR Freq Mean energy size $(s) Wat: $(all_data_ene["cif"][s]["wat"]["frq"])")
|
||
|
|
||
|
all_data_ene["mni"][s]["est"]["bay"] = sum(mni_est_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"MNIST Bayes Mean energy size $(s) Est: $(all_data_ene["mni"][s]["est"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["mni"][s]["est"]["frq"] = sum(mni_est_fre_ene[s]["Ene"])
|
||
|
println("MNIST Freq Mean energy size $(s) Est: $(all_data_ene["mni"][s]["est"]["frq"])")
|
||
|
all_data_ene["cif"][s]["est"]["bay"] = sum(cif_est_bay_ene[s]["Ene"])
|
||
|
println(
|
||
|
"CIFAR Bayes Mean energy size $(s) Est: $(all_data_ene["cif"][s]["est"]["bay"])",
|
||
|
)
|
||
|
all_data_ene["cif"][s]["est"]["frq"] = sum(cif_est_fre_ene[s]["Ene"])
|
||
|
println("CIFAR Freq Mean energy size $(s) Est: $(all_data_ene["cif"][s]["est"]["frq"])")
|
||
|
end
|
||
|
|
||
|
#=
|
||
|
Load Accuracy data
|
||
|
=#
|
||
|
|
||
|
mni_100_bay_exp = getgpudata(mni_folder_100, bayes_model, e_type, "eo");
|
||
|
mni_100_fre_exp = getgpudata(mni_folder_100, freq_model, e_type, "eo");
|
||
|
cif_100_bay_exp = getgpudata(cif_folder_100, bayes_model, e_type, "eo");
|
||
|
cif_100_fre_exp = getgpudata(cif_folder_100, freq_model, e_type, "eo");
|
||
|
|
||
|
mni_acc_bay_exp = getgpudata(mni_folder_acc, bayes_model, e_type, "eo");
|
||
|
mni_acc_fre_exp = getgpudata(mni_folder_acc, freq_model, e_type, "eo");
|
||
|
cif_acc_bay_exp = getgpudata(cif_folder_acc, bayes_model, e_type, "eo");
|
||
|
cif_acc_fre_exp = getgpudata(cif_folder_acc, freq_model, e_type, "eo");
|
||
|
|
||
|
mni_wat_bay_exp = getgpudata(mni_folder_wat, bayes_model, e_type, "eo");
|
||
|
mni_wat_fre_exp = getgpudata(mni_folder_wat, freq_model, e_type, "eo");
|
||
|
cif_wat_bay_exp = getgpudata(cif_folder_wat, bayes_model, e_type, "eo");
|
||
|
cif_wat_fre_exp = getgpudata(cif_folder_wat, freq_model, e_type, "eo");
|
||
|
|
||
|
mni_est_bay_exp = getgpudata(mni_folder_est, bayes_model, e_type, "eo");
|
||
|
mni_est_fre_exp = getgpudata(mni_folder_est, freq_model, e_type, "eo");
|
||
|
cif_est_bay_exp = getgpudata(cif_folder_est, bayes_model, e_type, "eo");
|
||
|
cif_est_fre_exp = getgpudata(cif_folder_est, freq_model, e_type, "eo");
|
||
|
|
||
|
|
||
|
for i = 1:5
|
||
|
mni_100_bay_exp[i] = expdatatodict(mni_100_bay_exp[i])
|
||
|
mni_100_fre_exp[i] = expdatatodict(mni_100_fre_exp[i])
|
||
|
cif_100_bay_exp[i] = expdatatodict(cif_100_bay_exp[i])
|
||
|
cif_100_fre_exp[i] = expdatatodict(cif_100_fre_exp[i])
|
||
|
|
||
|
mni_acc_bay_exp[i] = expdatatodict(mni_acc_bay_exp[i])
|
||
|
mni_acc_fre_exp[i] = expdatatodict(mni_acc_fre_exp[i])
|
||
|
cif_acc_bay_exp[i] = expdatatodict(cif_acc_bay_exp[i])
|
||
|
cif_acc_fre_exp[i] = expdatatodict(cif_acc_fre_exp[i])
|
||
|
|
||
|
mni_wat_bay_exp[i] = expdatatodict(mni_wat_bay_exp[i])
|
||
|
mni_wat_fre_exp[i] = expdatatodict(mni_wat_fre_exp[i])
|
||
|
cif_wat_bay_exp[i] = expdatatodict(cif_wat_bay_exp[i])
|
||
|
cif_wat_fre_exp[i] = expdatatodict(cif_wat_fre_exp[i])
|
||
|
|
||
|
mni_est_bay_exp[i] = expdatatodict(mni_est_bay_exp[i])
|
||
|
mni_est_fre_exp[i] = expdatatodict(mni_est_fre_exp[i])
|
||
|
cif_est_bay_exp[i] = expdatatodict(cif_est_bay_exp[i])
|
||
|
cif_est_fre_exp[i] = expdatatodict(cif_est_fre_exp[i])
|
||
|
end
|
||
|
|
||
|
|
||
|
all_data_exp = Dict(
|
||
|
"mni" => Dict(
|
||
|
1 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
2 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
3 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
4 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
5 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
),
|
||
|
"cif" => Dict(
|
||
|
1 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
2 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
3 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
4 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
5 => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
),
|
||
|
)
|
||
|
|
||
|
|
||
|
for s = 1:5
|
||
|
all_data_exp["mni"][s]["100"]["bay"] =
|
||
|
(mean(mni_100_bay_exp[s]["acc"]) + mean(mni_100_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Bayes Mean accuracy size $(s) 100: $(all_data_exp["mni"][s]["100"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["mni"][s]["100"]["frq"] =
|
||
|
(mean(mni_100_fre_exp[s]["acc"]) + mean(mni_100_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Freq Mean accuracy size $(s) 100: $(all_data_exp["mni"][s]["100"]["frq"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["100"]["bay"] =
|
||
|
(mean(cif_100_bay_exp[s]["acc"]) + mean(cif_100_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Bayes Mean accuracy size $(s) 100: $(all_data_exp["cif"][s]["100"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["100"]["frq"] =
|
||
|
(mean(cif_100_fre_exp[s]["acc"]) + mean(cif_100_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Freq Mean accuracy size $(s) 100: $(all_data_exp["cif"][s]["100"]["frq"])",
|
||
|
)
|
||
|
|
||
|
all_data_exp["mni"][s]["acc"]["bay"] =
|
||
|
(mean(mni_acc_bay_exp[s]["acc"]) + mean(mni_acc_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Bayes Mean accuracy size $(s) Acc: $(all_data_exp["mni"][s]["acc"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["mni"][s]["acc"]["frq"] =
|
||
|
(mean(mni_acc_fre_exp[s]["acc"]) + mean(mni_acc_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Freq Mean accuracy size $(s) Acc: $(all_data_exp["mni"][s]["acc"]["frq"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["acc"]["bay"] =
|
||
|
(mean(cif_acc_bay_exp[s]["acc"]) + mean(cif_acc_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Bayes Mean accuracy size $(s) Acc: $(all_data_exp["cif"][s]["acc"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["acc"]["frq"] =
|
||
|
(mean(cif_acc_fre_exp[s]["acc"]) + mean(cif_acc_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Freq Mean accuracy size $(s) Acc: $(all_data_exp["cif"][s]["acc"]["frq"])",
|
||
|
)
|
||
|
|
||
|
|
||
|
all_data_exp["mni"][s]["wat"]["bay"] =
|
||
|
(mean(mni_wat_bay_exp[s]["acc"]) + mean(mni_wat_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Bayes Mean accuracy size $(s) Wat: $(all_data_exp["mni"][s]["wat"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["mni"][s]["wat"]["frq"] =
|
||
|
(mean(mni_wat_fre_exp[s]["acc"]) + mean(mni_wat_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Freq Mean accuracy size $(s) Wat: $(all_data_exp["mni"][s]["wat"]["frq"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["wat"]["bay"] =
|
||
|
(mean(cif_wat_bay_exp[s]["acc"]) + mean(cif_wat_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Bayes Mean accuracy size $(s) Wat: $(all_data_exp["cif"][s]["wat"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["wat"]["frq"] =
|
||
|
(mean(cif_wat_fre_exp[s]["acc"]) + mean(cif_wat_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Freq Mean accuracy size $(s) Wat: $(all_data_exp["cif"][s]["wat"]["frq"])",
|
||
|
)
|
||
|
|
||
|
all_data_exp["mni"][s]["est"]["bay"] =
|
||
|
(mean(mni_est_bay_exp[s]["acc"]) + mean(mni_est_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Bayes Mean accuracy size $(s) Est: $(all_data_exp["mni"][s]["est"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["mni"][s]["est"]["frq"] =
|
||
|
(mean(mni_est_fre_exp[s]["acc"]) + mean(mni_est_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"MNIST Freq Mean accuracy size $(s) Est: $(all_data_exp["mni"][s]["est"]["frq"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["est"]["bay"] =
|
||
|
(mean(cif_est_bay_exp[s]["acc"]) + mean(cif_est_bay_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Bayes Mean accuracy size $(s) Est: $(all_data_exp["cif"][s]["est"]["bay"])",
|
||
|
)
|
||
|
all_data_exp["cif"][s]["est"]["frq"] =
|
||
|
(mean(cif_est_fre_exp[s]["acc"]) + mean(cif_est_fre_exp[s]["pre"])) / 2
|
||
|
println(
|
||
|
"CIFAR Freq Mean accuracy size $(s) Est: $(all_data_exp["cif"][s]["est"]["frq"])",
|
||
|
)
|
||
|
end
|
||
|
|
||
|
|
||
|
#=
|
||
|
# Per size efficiency
|
||
|
=#
|
||
|
|
||
|
efficiency_per_size = Dict(
|
||
|
"frq" => Dict(
|
||
|
"mni" => Dict(
|
||
|
"100" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"est" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"acc" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"wat" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
),
|
||
|
"cif" => Dict(
|
||
|
"100" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"est" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"acc" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"wat" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
),
|
||
|
),
|
||
|
"bay" => Dict(
|
||
|
"mni" => Dict(
|
||
|
"100" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"est" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"acc" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"wat" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
),
|
||
|
"cif" => Dict(
|
||
|
"100" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"est" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"acc" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
"wat" => Dict("1" => 0.0, "2" => 0.0, "3" => 0.0, "4" => 0.0, "5" => 0.0),
|
||
|
),
|
||
|
),
|
||
|
)
|
||
|
|
||
|
|
||
|
data_type = ["mni", "cif"]
|
||
|
model_type = ["bay", "frq"]
|
||
|
experiment_type = ["100", "est", "acc", "wat"]
|
||
|
|
||
|
what = collect(Iterators.product(model_type, data_type, experiment_type, 1:5))
|
||
|
|
||
|
for t in what
|
||
|
#println("model: $(t[1]), data: $(t[2]), experiment: $(t[3]), size: $(t[4])")
|
||
|
#println(all_data_exp[t[2]][t[4]][t[3]][t[1]]/all_data_ene[t[2]][t[4]][t[3]][t[1]] * 100)
|
||
|
efficiency_per_size[t[1]][t[2]][t[3]][string(t[4])] =
|
||
|
all_data_exp[t[2]][t[4]][t[3]][t[1]] / all_data_ene[t[2]][t[4]][t[3]][t[1]] * 100
|
||
|
end
|
||
|
|
||
|
|
||
|
save_pickle("efficiency_per_size.pkl", efficiency_per_size)
|
||
|
save_pickle("energy_complete.pkl", all_data_ene)
|
||
|
|
||
|
|
||
|
#=
|
||
|
# Accuracy means
|
||
|
=#
|
||
|
|
||
|
comp_exp = Dict(
|
||
|
"mni" => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
"cif" => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
)
|
||
|
|
||
|
comp_exp["mni"]["100"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["100"]["frq"] +
|
||
|
all_data_exp["mni"][2]["100"]["frq"] +
|
||
|
all_data_exp["mni"][3]["100"]["frq"] +
|
||
|
all_data_exp["mni"][4]["100"]["frq"] +
|
||
|
all_data_exp["mni"][5]["100"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["mni"]["100"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["100"]["bay"] +
|
||
|
all_data_exp["mni"][2]["100"]["bay"] +
|
||
|
all_data_exp["mni"][3]["100"]["bay"] +
|
||
|
all_data_exp["mni"][4]["100"]["bay"] +
|
||
|
all_data_exp["mni"][5]["100"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_exp["cif"]["100"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["100"]["frq"] +
|
||
|
all_data_exp["cif"][2]["100"]["frq"] +
|
||
|
all_data_exp["cif"][3]["100"]["frq"] +
|
||
|
all_data_exp["cif"][4]["100"]["frq"] +
|
||
|
all_data_exp["cif"][5]["100"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["cif"]["100"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["100"]["bay"] +
|
||
|
all_data_exp["cif"][2]["100"]["bay"] +
|
||
|
all_data_exp["cif"][3]["100"]["bay"] +
|
||
|
all_data_exp["cif"][4]["100"]["bay"] +
|
||
|
all_data_exp["cif"][5]["100"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
comp_exp["mni"]["acc"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["acc"]["frq"] +
|
||
|
all_data_exp["mni"][2]["acc"]["frq"] +
|
||
|
all_data_exp["mni"][3]["acc"]["frq"] +
|
||
|
all_data_exp["mni"][4]["acc"]["frq"] +
|
||
|
all_data_exp["mni"][5]["acc"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["mni"]["acc"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["acc"]["bay"] +
|
||
|
all_data_exp["mni"][2]["acc"]["bay"] +
|
||
|
all_data_exp["mni"][3]["acc"]["bay"] +
|
||
|
all_data_exp["mni"][4]["acc"]["bay"] +
|
||
|
all_data_exp["mni"][5]["acc"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_exp["cif"]["acc"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["acc"]["frq"] +
|
||
|
all_data_exp["cif"][2]["acc"]["frq"] +
|
||
|
all_data_exp["cif"][3]["acc"]["frq"] +
|
||
|
all_data_exp["cif"][4]["acc"]["frq"] +
|
||
|
all_data_exp["cif"][5]["acc"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["cif"]["acc"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["acc"]["bay"] +
|
||
|
all_data_exp["cif"][2]["acc"]["bay"] +
|
||
|
all_data_exp["cif"][3]["acc"]["bay"] +
|
||
|
all_data_exp["cif"][4]["acc"]["bay"] +
|
||
|
all_data_exp["cif"][5]["acc"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
|
||
|
comp_exp["mni"]["wat"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["wat"]["frq"] +
|
||
|
all_data_exp["mni"][2]["wat"]["frq"] +
|
||
|
all_data_exp["mni"][3]["wat"]["frq"] +
|
||
|
all_data_exp["mni"][4]["wat"]["frq"] +
|
||
|
all_data_exp["mni"][5]["wat"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["mni"]["wat"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["wat"]["bay"] +
|
||
|
all_data_exp["mni"][2]["wat"]["bay"] +
|
||
|
all_data_exp["mni"][3]["wat"]["bay"] +
|
||
|
all_data_exp["mni"][4]["wat"]["bay"] +
|
||
|
all_data_exp["mni"][5]["wat"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_exp["cif"]["wat"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["wat"]["frq"] +
|
||
|
all_data_exp["cif"][2]["wat"]["frq"] +
|
||
|
all_data_exp["cif"][3]["wat"]["frq"] +
|
||
|
all_data_exp["cif"][4]["wat"]["frq"] +
|
||
|
all_data_exp["cif"][5]["wat"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["cif"]["wat"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["wat"]["bay"] +
|
||
|
all_data_exp["cif"][2]["wat"]["bay"] +
|
||
|
all_data_exp["cif"][3]["wat"]["bay"] +
|
||
|
all_data_exp["cif"][4]["wat"]["bay"] +
|
||
|
all_data_exp["cif"][5]["wat"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
comp_exp["mni"]["est"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["est"]["frq"] +
|
||
|
all_data_exp["mni"][2]["est"]["frq"] +
|
||
|
all_data_exp["mni"][3]["est"]["frq"] +
|
||
|
all_data_exp["mni"][4]["est"]["frq"] +
|
||
|
all_data_exp["mni"][5]["est"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["mni"]["est"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["mni"][1]["est"]["bay"] +
|
||
|
all_data_exp["mni"][2]["est"]["bay"] +
|
||
|
all_data_exp["mni"][3]["est"]["bay"] +
|
||
|
all_data_exp["mni"][4]["est"]["bay"] +
|
||
|
all_data_exp["mni"][5]["est"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_exp["cif"]["est"]["frq"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["est"]["frq"] +
|
||
|
all_data_exp["cif"][2]["est"]["frq"] +
|
||
|
all_data_exp["cif"][3]["est"]["frq"] +
|
||
|
all_data_exp["cif"][4]["est"]["frq"] +
|
||
|
all_data_exp["cif"][5]["est"]["frq"]
|
||
|
) / 5
|
||
|
comp_exp["cif"]["est"]["bay"] =
|
||
|
(
|
||
|
all_data_exp["cif"][1]["est"]["bay"] +
|
||
|
all_data_exp["cif"][2]["est"]["bay"] +
|
||
|
all_data_exp["cif"][3]["est"]["bay"] +
|
||
|
all_data_exp["cif"][4]["est"]["bay"] +
|
||
|
all_data_exp["cif"][5]["est"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
|
||
|
#=
|
||
|
# Energy means
|
||
|
=#
|
||
|
|
||
|
comp_ene = Dict(
|
||
|
"mni" => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
"cif" => Dict(
|
||
|
"100" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"acc" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"wat" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
"est" => Dict("bay" => 0.0, "frq" => 0.0),
|
||
|
),
|
||
|
)
|
||
|
|
||
|
comp_ene["mni"]["100"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["100"]["frq"] +
|
||
|
all_data_ene["mni"][2]["100"]["frq"] +
|
||
|
all_data_ene["mni"][3]["100"]["frq"] +
|
||
|
all_data_ene["mni"][4]["100"]["frq"] +
|
||
|
all_data_ene["mni"][5]["100"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["mni"]["100"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["100"]["bay"] +
|
||
|
all_data_ene["mni"][2]["100"]["bay"] +
|
||
|
all_data_ene["mni"][3]["100"]["bay"] +
|
||
|
all_data_ene["mni"][4]["100"]["bay"] +
|
||
|
all_data_ene["mni"][5]["100"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_ene["cif"]["100"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["100"]["frq"] +
|
||
|
all_data_ene["cif"][2]["100"]["frq"] +
|
||
|
all_data_ene["cif"][3]["100"]["frq"] +
|
||
|
all_data_ene["cif"][4]["100"]["frq"] +
|
||
|
all_data_ene["cif"][5]["100"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["cif"]["100"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["100"]["bay"] +
|
||
|
all_data_ene["cif"][2]["100"]["bay"] +
|
||
|
all_data_ene["cif"][3]["100"]["bay"] +
|
||
|
all_data_ene["cif"][4]["100"]["bay"] +
|
||
|
all_data_ene["cif"][5]["100"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
comp_ene["mni"]["acc"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["acc"]["frq"] +
|
||
|
all_data_ene["mni"][2]["acc"]["frq"] +
|
||
|
all_data_ene["mni"][3]["acc"]["frq"] +
|
||
|
all_data_ene["mni"][4]["acc"]["frq"] +
|
||
|
all_data_ene["mni"][5]["acc"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["mni"]["acc"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["acc"]["bay"] +
|
||
|
all_data_ene["mni"][2]["acc"]["bay"] +
|
||
|
all_data_ene["mni"][3]["acc"]["bay"] +
|
||
|
all_data_ene["mni"][4]["acc"]["bay"] +
|
||
|
all_data_ene["mni"][5]["acc"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_ene["cif"]["acc"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["acc"]["frq"] +
|
||
|
all_data_ene["cif"][2]["acc"]["frq"] +
|
||
|
all_data_ene["cif"][3]["acc"]["frq"] +
|
||
|
all_data_ene["cif"][4]["acc"]["frq"] +
|
||
|
all_data_ene["cif"][5]["acc"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["cif"]["acc"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["acc"]["bay"] +
|
||
|
all_data_ene["cif"][2]["acc"]["bay"] +
|
||
|
all_data_ene["cif"][3]["acc"]["bay"] +
|
||
|
all_data_ene["cif"][4]["acc"]["bay"] +
|
||
|
all_data_ene["cif"][5]["acc"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
|
||
|
comp_ene["mni"]["wat"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["wat"]["frq"] +
|
||
|
all_data_ene["mni"][2]["wat"]["frq"] +
|
||
|
all_data_ene["mni"][3]["wat"]["frq"] +
|
||
|
all_data_ene["mni"][4]["wat"]["frq"] +
|
||
|
all_data_ene["mni"][5]["wat"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["mni"]["wat"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["wat"]["bay"] +
|
||
|
all_data_ene["mni"][2]["wat"]["bay"] +
|
||
|
all_data_ene["mni"][3]["wat"]["bay"] +
|
||
|
all_data_ene["mni"][4]["wat"]["bay"] +
|
||
|
all_data_ene["mni"][5]["wat"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_ene["cif"]["wat"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["wat"]["frq"] +
|
||
|
all_data_ene["cif"][2]["wat"]["frq"] +
|
||
|
all_data_ene["cif"][3]["wat"]["frq"] +
|
||
|
all_data_ene["cif"][4]["wat"]["frq"] +
|
||
|
all_data_ene["cif"][5]["wat"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["cif"]["wat"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["wat"]["bay"] +
|
||
|
all_data_ene["cif"][2]["wat"]["bay"] +
|
||
|
all_data_ene["cif"][3]["wat"]["bay"] +
|
||
|
all_data_ene["cif"][4]["wat"]["bay"] +
|
||
|
all_data_ene["cif"][5]["wat"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
comp_ene["mni"]["est"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["est"]["frq"] +
|
||
|
all_data_ene["mni"][2]["est"]["frq"] +
|
||
|
all_data_ene["mni"][3]["est"]["frq"] +
|
||
|
all_data_ene["mni"][4]["est"]["frq"] +
|
||
|
all_data_ene["mni"][5]["est"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["mni"]["est"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["mni"][1]["est"]["bay"] +
|
||
|
all_data_ene["mni"][2]["est"]["bay"] +
|
||
|
all_data_ene["mni"][3]["est"]["bay"] +
|
||
|
all_data_ene["mni"][4]["est"]["bay"] +
|
||
|
all_data_ene["mni"][5]["est"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
comp_ene["cif"]["est"]["frq"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["est"]["frq"] +
|
||
|
all_data_ene["cif"][2]["est"]["frq"] +
|
||
|
all_data_ene["cif"][3]["est"]["frq"] +
|
||
|
all_data_ene["cif"][4]["est"]["frq"] +
|
||
|
all_data_ene["cif"][5]["est"]["frq"]
|
||
|
) / 5
|
||
|
comp_ene["cif"]["est"]["bay"] =
|
||
|
(
|
||
|
all_data_ene["cif"][1]["est"]["bay"] +
|
||
|
all_data_ene["cif"][2]["est"]["bay"] +
|
||
|
all_data_ene["cif"][3]["est"]["bay"] +
|
||
|
all_data_ene["cif"][4]["est"]["bay"] +
|
||
|
all_data_ene["cif"][5]["est"]["bay"]
|
||
|
) / 5
|
||
|
|
||
|
|
||
|
#=
|
||
|
Final Metric per experiment
|
||
|
=#
|
||
|
|
||
|
println(
|
||
|
"MNIST LeNet 100, Accuracy: $(comp_exp["mni"]["100"]["frq"]), Energy: $(comp_ene["mni"]["100"]["frq"]), Ratio: $((comp_exp["mni"]["100"]["frq"] / comp_ene["mni"]["100"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"MNIST Bayes 100, Accuracy: $(comp_exp["mni"]["100"]["bay"]), Energy: $(comp_ene["mni"]["100"]["bay"]), Ratio: $((comp_exp["mni"]["100"]["bay"] / comp_ene["mni"]["100"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
println(
|
||
|
"CIFAR LeNet 100, Accuracy: $(comp_exp["cif"]["100"]["frq"]), Energy: $(comp_ene["cif"]["100"]["frq"]), Ratio: $((comp_exp["cif"]["100"]["frq"] / comp_ene["cif"]["100"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"CIFAR Bayes 100, Accuracy: $(comp_exp["cif"]["100"]["bay"]), Energy: $(comp_ene["cif"]["100"]["bay"]), Ratio: $((comp_exp["cif"]["100"]["bay"] / comp_ene["cif"]["100"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
|
||
|
println(
|
||
|
"MNIST LeNet Acc, Accuracy: $(comp_exp["mni"]["acc"]["frq"]), Energy: $(comp_ene["mni"]["acc"]["frq"]), Ratio: $((comp_exp["mni"]["acc"]["frq"] / comp_ene["mni"]["acc"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"MNIST Bayes Acc, Accuracy: $(comp_exp["mni"]["acc"]["bay"]), Energy: $(comp_ene["mni"]["acc"]["bay"]), Ratio: $((comp_exp["mni"]["acc"]["bay"] / comp_ene["mni"]["acc"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
println(
|
||
|
"CIFAR LeNet Acc, Accuracy: $(comp_exp["cif"]["acc"]["frq"]), Energy: $(comp_ene["cif"]["acc"]["frq"]), Ratio: $((comp_exp["cif"]["acc"]["frq"] / comp_ene["cif"]["acc"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"CIFAR Bayes Acc, Accuracy: $(comp_exp["cif"]["acc"]["bay"]), Energy: $(comp_ene["cif"]["acc"]["bay"]), Ratio: $((comp_exp["cif"]["acc"]["bay"] / comp_ene["cif"]["acc"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
|
||
|
|
||
|
println(
|
||
|
"MNIST LeNet Wat, Accuracy: $(comp_exp["mni"]["wat"]["frq"]), Energy: $(comp_ene["mni"]["wat"]["frq"]), Ratio: $((comp_exp["mni"]["wat"]["frq"] / comp_ene["mni"]["wat"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"MNIST Bayes Wat, Accuracy: $(comp_exp["mni"]["wat"]["bay"]), Energy: $(comp_ene["mni"]["wat"]["bay"]), Ratio: $((comp_exp["mni"]["wat"]["bay"] / comp_ene["mni"]["wat"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
println(
|
||
|
"CIFAR LeNet Wat, Accuracy: $(comp_exp["cif"]["wat"]["frq"]), Energy: $(comp_ene["cif"]["wat"]["frq"]), Ratio: $((comp_exp["cif"]["wat"]["frq"] / comp_ene["cif"]["wat"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"CIFAR Bayes Wat, Accuracy: $(comp_exp["cif"]["wat"]["bay"]), Energy: $(comp_ene["cif"]["wat"]["bay"]), Ratio: $((comp_exp["cif"]["wat"]["bay"] / comp_ene["cif"]["wat"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
|
||
|
println(
|
||
|
"MNIST LeNet Est, Accuracy: $(comp_exp["mni"]["est"]["frq"]), Energy: $(comp_ene["mni"]["est"]["frq"]), Ratio: $((comp_exp["mni"]["est"]["frq"] / comp_ene["mni"]["est"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"MNIST Bayes Est, Accuracy: $(comp_exp["mni"]["est"]["bay"]), Energy: $(comp_ene["mni"]["est"]["bay"]), Ratio: $((comp_exp["mni"]["est"]["bay"] / comp_ene["mni"]["est"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
println(
|
||
|
"CIFAR LeNet Est, Accuracy: $(comp_exp["cif"]["est"]["frq"]), Energy: $(comp_ene["cif"]["est"]["frq"]), Ratio: $((comp_exp["cif"]["est"]["frq"] / comp_ene["cif"]["est"]["frq"]) * 100)",
|
||
|
)
|
||
|
println(
|
||
|
"CIFAR Bayes Est, Accuracy: $(comp_exp["cif"]["est"]["bay"]), Energy: $(comp_ene["cif"]["est"]["bay"]), Ratio: $((comp_exp["cif"]["est"]["bay"] / comp_ene["cif"]["est"]["bay"]) * 100)",
|
||
|
)
|
||
|
|
||
|
|
||
|
#=
|
||
|
Final Metric
|
||
|
=#
|
||
|
|
||
|
mni_tot_frq_exp =
|
||
|
(
|
||
|
comp_exp["mni"]["100"]["frq"] +
|
||
|
comp_exp["mni"]["acc"]["frq"] +
|
||
|
comp_exp["mni"]["wat"]["frq"] +
|
||
|
comp_exp["mni"]["est"]["frq"]
|
||
|
) / 4
|
||
|
|
||
|
mni_tot_bay_exp =
|
||
|
(
|
||
|
comp_exp["mni"]["100"]["bay"] +
|
||
|
comp_exp["mni"]["acc"]["bay"] +
|
||
|
comp_exp["mni"]["wat"]["bay"] +
|
||
|
comp_exp["mni"]["est"]["bay"]
|
||
|
) / 4
|
||
|
|
||
|
|
||
|
cif_tot_frq_exp =
|
||
|
(
|
||
|
comp_exp["cif"]["100"]["frq"] +
|
||
|
comp_exp["cif"]["acc"]["frq"] +
|
||
|
comp_exp["cif"]["wat"]["frq"] +
|
||
|
comp_exp["cif"]["est"]["frq"]
|
||
|
) / 4
|
||
|
|
||
|
cif_tot_bay_exp =
|
||
|
(
|
||
|
comp_exp["cif"]["100"]["bay"] +
|
||
|
comp_exp["cif"]["acc"]["bay"] +
|
||
|
comp_exp["cif"]["wat"]["bay"] +
|
||
|
comp_exp["cif"]["est"]["bay"]
|
||
|
) / 4
|
||
|
|
||
|
|
||
|
|
||
|
mni_tot_frq_ene =
|
||
|
(
|
||
|
comp_ene["mni"]["100"]["frq"] +
|
||
|
comp_ene["mni"]["acc"]["frq"] +
|
||
|
comp_ene["mni"]["wat"]["frq"] +
|
||
|
comp_ene["mni"]["est"]["frq"]
|
||
|
) / 4
|
||
|
|
||
|
mni_tot_bay_ene =
|
||
|
(
|
||
|
comp_ene["mni"]["100"]["bay"] +
|
||
|
comp_ene["mni"]["acc"]["bay"] +
|
||
|
comp_ene["mni"]["wat"]["bay"] +
|
||
|
comp_ene["mni"]["est"]["bay"]
|
||
|
) / 4
|
||
|
|
||
|
|
||
|
cif_tot_frq_ene =
|
||
|
(
|
||
|
comp_ene["cif"]["100"]["frq"] +
|
||
|
comp_ene["cif"]["acc"]["frq"] +
|
||
|
comp_ene["cif"]["wat"]["frq"] +
|
||
|
comp_ene["cif"]["est"]["frq"]
|
||
|
) / 4
|
||
|
|
||
|
cif_tot_bay_ene =
|
||
|
(
|
||
|
comp_ene["cif"]["100"]["bay"] +
|
||
|
comp_ene["cif"]["acc"]["bay"] +
|
||
|
comp_ene["cif"]["wat"]["bay"] +
|
||
|
comp_ene["cif"]["est"]["bay"]
|
||
|
) / 4
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
println("LeNet-5 on MNIST Efficiency Metric: $((mni_tot_frq_exp * 100) / mni_tot_frq_ene)")
|
||
|
println("LeNet-5 on CIFAR Efficiency Metric: $((cif_tot_frq_exp * 100) / cif_tot_frq_ene)")
|
||
|
|
||
|
println("BCNN on MNIST Efficiency Metric: $((mni_tot_bay_exp * 100) / mni_tot_bay_ene)")
|
||
|
println("BCNN on CIFAR Efficiency Metric: $((cif_tot_bay_exp * 100) / cif_tot_bay_ene)")
|