예제 #1
0
def upload_code():
    code_package, files_uploaded = upload_code_package(
        ".",
        excludes=[
            "core",
            "compression_results",
            "output.tmp",
            ".vscode",
            "node_modules",
            "scripts",
            ".git",
            "bla.tar",
            "*.pyc",
            "._*",
            "__pycache__",
            "*.pdf",
            "*.js",
            "*.yaml",
            ".pylintrc",
            ".gitignore",
            ".AppleDouble",
            ".jobignore",
        ],
    )
    print("Uploaded {} files.".format(len(files_uploaded)))

    return code_package
예제 #2
0
project = "decentralized_powersgd"
experiment = os.path.splitext(os.path.basename(__file__))[0]
script = "train.py"
description = """
See if we can reproduce Moniqua's results
""".strip()
base_config = {
    "n_workers": 8,
    "topology": "ring",
    "batch_size": 128,
    "task_architecture": "ResNet20",
}

code_package, files_uploaded = upload_code_package(".",
                                                   excludes=excluded_files +
                                                   ["gossip_run.py"])
print("Uploaded {} files.".format(len(files_uploaded)))


def schedule(name, config, skip_existing=False):
    # Skip pre-existing entries
    if (skip_existing and mongo.job.count_documents({
            "project": project,
            "job": name,
            "experiment": experiment
    }) > 0):
        return
    config = {**base_config, **config}
    n_workers = config["n_workers"]
    job_id = register_job(
예제 #3
0
    ".gitignore",
    ".AppleDouble",
    ".jobignore",
]


project = "decentralized_powersgd"
experiment = os.path.splitext(os.path.basename(__file__))[0]
script = "gossip_run.py"
description = """
Now using optimal scaling for the uncompressed baseline and PowerGossip.
""".strip()


code_package, files_uploaded = upload_code_package(
    ".", excludes=excluded_files + ["tasks", "train.py"]
)
print("Uploaded {} files.".format(len(files_uploaded)))


def schedule(name, config):
    # Skip pre-existing entries
    if mongo.job.count_documents({"project": project, "job": name, "experiment": experiment}) > 0:
        return

    job_id = register_job(
        user="******",
        project=project,
        experiment=experiment,
        job=name,
        n_workers=n_workers,
예제 #4
0
base_config = dict(
    task="LSTM",
    batch_size=64,  # per worker
    weight_decay=0,
    num_epochs=90,
    lr_schedule_milestones=[(60, 0.1), (80, 0.1)],
    learning_rate=1.25,
    momentum=0.0,
    optimizer_diffusion_rate=1,
    topology="ring",
    use_decentralized_data=True,
    n_workers=n_workers,
    evaluate_average_model=False,
)

code_package, files_uploaded = upload_code_package(".",
                                                   excludes=excluded_files)
print("Uploaded {} files.".format(len(files_uploaded)))

ids = []


def schedule(name, config, skip_existing=True):
    # Skip pre-existing entries
    config = {**base_config, **config}
    if (skip_existing and mongo.job.count_documents(
        {
            "project": project,
            "job": name,
            "experiment": experiment,
            "config.learning_rate": config["learning_rate"],
        }) > 0):