Select Git revision
analyze_adaptive_width.jl 1.86 KiB
using ValueHistories, JLD, DataFrames, DataFramesMeta, ExperimentalAnalysis
using Plots
const dir = "adaptive_width_experiments"
const N_burnin = 2000
function read_results()
datamatrix = map(readdir(dir)) do file
data = load(joinpath(dir,file))
loss_initial_min_before = minimum(data["vh.values"][1:N_burnin])
loss_initial_min_after = minimum(data["vh.values"][N_burnin+1:end])
loss_initial_max_after = maximum(data["vh.values"][N_burnin+1:end])
loss_second_min = minimum(data["vh2.values"])
loss_second_max = maximum(data["vh2.values"])
stepsize,gate_ratio,gate12,gate_cost,weight_cost = log10(data["stepsize"]),data["gate_ratio"],data["gate12"],log10(data["gate_cost"]),log10(data["weight_cost"])
Float64[loss_initial_min_before,loss_initial_min_after,loss_initial_max_after,loss_second_min,loss_second_max,stepsize,gate_ratio,gate12,gate_cost,weight_cost]
end
datamatrix = hcat(datamatrix...)
datamatrix = [datamatrix[i,:] for i in 1:size(datamatrix,1)]
datamatrix = convert(Vector{Any},datamatrix)
colnames = Symbol.(["loss_initial_min_before","loss_initial_min_after","loss_initial_max_after","loss_second_min","loss_second_max","stepsize","gate_ratio","gate12","gate_cost","weight_cost"])
df = DataFrame(datamatrix, colnames)
pool!(df,:gate12)
df
end
df = read_results()
# df = @where(df, :weight_cost .<= -3)
df = @transform(df, log_loss_initial_min_before = log10(:loss_initial_min_before), log_loss_initial_max_after = log10(:loss_initial_max_after))
fig = scattermatrix(df, log_loss_initial_min_before + log_loss_initial_max_after ~ stepsize + gate_ratio + gate_cost + weight_cost, reglines=true)
# model = lm(loss_initial_max_after ~ stepsize + gate12 + gate_ratio*gate_cost + loss_initial_min_before, df)
# using StatPlots; cornerplot(hcat(df.columns...), lab=keys(df.colindex))