MoonieC / Deep-Unfolded-D-ADMM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deep Unfolded D-ADMM

Proper colored network with P = 50 agents

P=50 graph

Unfolded D-ADMM for LASSO at agent p in iteration k. Dashed green and blue blocks are the primal and dual updates, respectively. Red fonts represent trainable parameters

update_step(3)

Unfolded D-ADMM for linear regression model illustration at agent p in iteration k. Dashed green and blue blocks are the primal update and the dual update, respectively. Red fonts represent trainable parameters

d-lr primal dual update

Introduction

In this work we propose a method that solves disributed optimization problem called Unfolded Distibuted Method of Multipliers(D-ADMM), which enables D-ADMM to operate reliably with a predefined and small number of messages exchanged by each agent using the emerging deep unfolding methodology. Unfolded D-ADMM fully preserves the operation of D-ADMM, while leveraging data to tune the hyperparameters of each iteration of the algorithm.

Please refer to our paper for more detailes.

Usage

This code has been tested on Python 3.9.7, PyTorch 1.10.2 and CUDA 11.1

Prerequisite

Training

Example with 50 agents:

''' python dlasso.py --exp_name dlasso_with_50_agents --data simulated --batch_size 100 --P 50 --graph_prob 0.12 --case dlasso --model diff --valid True '''

or

''' python dlr.py --exp_name dlasso_with_50_agents --data simulated --batch_size 100 --P 50 --graph_prob 0.12 --case dlasso --model diff --valid True '''

Testing

Example with 50 agents:

''' python dlasso.py --exp_name dlasso_with_50_agents --eval --valid False '''

or

''' python dlr.py --exp_name dlasso_with_50_agents --eval --valid False

'''

Data

Distributed LASSO Problem

Please refer to the data for the distributed LASSO problem.

The folder contains four directories for different SNR values {-2, 0, 2, 4}, in each directory there is a dataset_{snr}_snr.npy file which contain the data and labels.

When you load the data set allow_pickle=True.

Distributed Linear Regression Problem

For the distributed linear regression problem I used MNIST dataset.

About

License:MIT License


Languages

Language:Python 100.0%