Beispiel #1
0
        if "Avg kl_divergence_loss" in line:
            loss = line.rstrip("\n").split("Avg kl_divergence_loss = ")[-1]
            model_name = line.split(" - ")[1].split("|")[0]
            kl_losses[model_name] = float(loss)

experiment_results = [[
    "model_name", "encoder_layers", "latent_size", "optimizer",
    "n_warmup_epochs", "batch_size", "cv_reconstruction_loss",
    "cv_kl_divergence_loss", "cv_total_loss"
]]

for model_name in os.listdir(experiment_dir):
    model_dir = os.path.join(experiment_dir, model_name)
    if os.path.isfile(model_dir) or "_FINAL" in model_name: continue
    model_config = VAE.load_config(model_dir)

    recon_loss = recon_losses[model_name] if model_name in recon_losses \
        else "NaN"
    kl_loss = kl_losses[model_name] if model_name in kl_losses \
        else "NaN"
    total_loss = total_losses[model_name] if model_name in total_losses \
        else "NaN"

    experiment_results.append([
        model_name,
        str("|".join(model_config["encoder_layers"])),
        model_config["latent_size"], model_config["optimizer"],
        model_config["n_warmup_epochs"], model_config["batch_size"],
        recon_loss, kl_loss, total_loss
    ])
import six
import csv
import os

from framework.common.dataset import Dataset
from framework.common.sampling import stratified_kfold
from framework.keras.autoencoder import VariationalAutoencoder as VAE
import numpy as np

exp_name = "train_usokin-1000g-2layer-vae"
ref_model = "11_UsokinVAE"
model_config = VAE.load_config("results/{}/{}".format(exp_name, ref_model))
model_config["name"] = "UsokinVAE_BestTotalLoss"
model_config["model_dir"] = \
    "/pylon5/mc4s8ap/kchen8/single-cell-deep-learning/results/{}/{}".format(
        exp_name, model_config["name"])
model_config["tensorboard"] = True
model_config["bernoulli"] = False
model_config["checkpoint"] = True
model_config["early_stopping_metric"] = "loss"
model_config["checkpoint_metric"] = "loss"

if not os.path.exists(model_config["model_dir"]):
    os.makedirs(model_config["model_dir"])


def read_data_table(filepath, delimiter="\t"):
    with open(filepath, "r") as f:
        data = []
        for line in f.readlines():
            data.append(line.replace("\n", "").split(delimiter))