Skip to content
Snippets Groups Projects
Commit a7468dee authored by aurelien.bellet's avatar aurelien.bellet
Browse files

fix conflict

parents 5513a7bc 1ca8944e
No related branches found
No related tags found
No related merge requests found
Showing
with 233 additions and 148 deletions
...@@ -359,5 +359,59 @@ using the corresponding input functions. ...@@ -359,5 +359,59 @@ using the corresponding input functions.
\subsection{Evaluation} \subsection{Evaluation}
\label{section:ideal-cliques-evaluation} \label{section:ideal-cliques-evaluation}
\subsubsection{Convergence Speed of D-Cliques Compared to Fully-Connected}
% From directory 'results-v2':
% MNIST
% python $TOOLS/analyze/filter.py all --dataset:name mnist --topology:name fully-connected d-cliques/ideal --nodes:name max-local-skew --meta:seed 1 --nodes:nb-nodes 100 | python $TOOLS/analyze/diff.py
% python $TOOLS/analyze/diff.py --rundirs all/2021-09-28-12:39:00-CEST-labostrex117 all/2021-09-28-23:18:40-CEST-labostrex118 --pass-through | python $TOOLS/plot/convergence.py --add-min-max --ymin 80 --ymax 92.5 --yaxis test-accuracy --labels 'fully-connected' 'd-cliques (fc) w/ cliq-avg' --save-figure ../mlsys2022style/figures/convergence-speed-mnist-dc-fc-vs-fc-1-class-per-node.png --linestyles 'solid' 'dashed'
% CIFAR10
% python $TOOLS/analyze/filter.py all --dataset:name cifar10 --topology:name fully-connected d-cliques/ideal --nodes:name max-local-skew --meta:seed 1 --nodes:nb-nodes 100 | python $TOOLS/analyze/diff.py
% python $TOOLS/analyze/diff.py --rundirs all/2021-10-03-16:09:21-CEST-labostrex112 all/2021-10-03-19:45:14-CEST-labostrex118 --pass-through | python $TOOLS/plot/convergence.py --add-min-max --ymin 0 --ymax 100 --yaxis test-accuracy --labels 'fully-connected w/ momentum' 'd-cliques (fc) w/ cliq-avg and momentum' --save-figure ../mlsys2022style/figures/convergence-speed-cifar10-dc-fc-vs-fc-1-class-per-node.png --linestyles 'solid' 'dashed' --legend 'lower right'
\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.35\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/convergence-speed-mnist-dc-fc-vs-fc-1-class-per-node}
\caption{\label{fig:convergence-speed-mnist-dc-fc-vs-fc-1-class-per-node} MNIST}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.35\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/convergence-speed-cifar10-dc-fc-vs-fc-1-class-per-node}
\caption{\label{fig:convergence-speed-cifar10-dc-fc-vs-fc-1-class-per-node} CIFAR10}
\end{subfigure}
\caption{\label{fig:convergence-speed-dc-vs-fc-1-class-per-node} Convergence Speed of D-Cliques Compared to Fully-Connected on 100 Nodes (1 class/node).}
\end{figure}
\subsubsection{Effect of Removing Intra-clique Edges}
% From directory 'results-v2':
% MNIST
% python $TOOLS/analyze/filter.py all --dataset:name mnist --topology:name d-cliques/ideal --nodes:name max-local-skew --meta:seed 1 --nodes:nb-nodes 100 | python $TOOLS/analyze/diff.py
% w/o Clique Gradient
% python $TOOLS/analyze/diff.py --rundirs all/2021-09-29-03:52:47-CEST-labostrex118 all/2021-10-02-21:26:18-CEST-labostrex113 all/2021-10-03-06:33:52-CEST-labostrex113 --pass-through | python $TOOLS/plot/convergence.py --add-min-max --ymin 89 --ymax 92.5 --yaxis test-accuracy --labels 'full intra-connectivity' '-1 edge/clique' '-5 edges/clique' --save-figure ../mlsys2022style/figures/d-cliques-ideal-wo-clique-avg-impact-of-edge-removal.png --linestyles 'solid' 'dashed' 'dotted' --font-size 18
% w/ Clique Gradient
% python $TOOLS/analyze/diff.py --rundirs all/2021-09-28-23:18:40-CEST-labostrex118 all/2021-10-02-16:50:53-CEST-labostrex113 all/2021-10-03-02:00:23-CEST-labostrex113 --pass-through | python $TOOLS/plot/convergence.py --add-min-max --ymin 89 --ymax 92.5 --yaxis test-accuracy --labels 'full intra-connectivity' '-1 edge/clique' '-5 edges/clique' --save-figure ../mlsys2022style/figures/d-cliques-ideal-w-clique-avg-impact-of-edge-removal.png --linestyles 'solid' 'dashed' 'dotted' --font-size 18
\begin{figure}[t]
\centering
\begin{subfigure}[htbp]{0.23\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/d-cliques-ideal-wo-clique-avg-impact-of-edge-removal}
\caption{\label{fig:d-cliques-ideal-wo-clique-avg-impact-of-edge-removal} Without Clique Averaging }
\end{subfigure}
\hfill
\begin{subfigure}[htbp]{0.23\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/d-cliques-ideal-w-clique-avg-impact-of-edge-removal}
\caption{\label{fig:d-cliques-ideal-w-clique-avg-impact-of-edge-removal} With Clique Averaging}
\end{subfigure}
\caption{\label{fig:d-cliques-ideal-intra-connectivity} Impact of Intra-clique Connectivity Failures on MNIST (1 class/node). Y axis starts at 89.}
\end{figure}
\ No newline at end of file
...@@ -85,7 +85,6 @@ of the absolute differences of $p_C(y)$ and $p(y)$: ...@@ -85,7 +85,6 @@ of the absolute differences of $p_C(y)$ and $p(y)$:
\end{equation} \end{equation}
% D-Cliques constructs a topology in which each node $i \in N$ is % D-Cliques constructs a topology in which each node $i \in N$ is
% part of a \textit{clique} $C$ such that the clique distribution $D_C = % part of a \textit{clique} $C$ such that the clique distribution $D_C =
% \bigcup\limits_{\substack{i \in C}} D_i$ is close to that of the global % \bigcup\limits_{\substack{i \in C}} D_i$ is close to that of the global
...@@ -101,6 +100,13 @@ of the absolute differences of $p_C(y)$ and $p(y)$: ...@@ -101,6 +100,13 @@ of the absolute differences of $p_C(y)$ and $p(y)$:
% \end{split} % \end{split}
% \end{equation} % \end{equation}
\begin{figure}[t]
\centering
\includegraphics[width=0.20\textwidth]{../figures/fully-connected-cliques}
\caption{\label{fig:d-cliques-figure} D-Cliques (fully-connected
cliques) example with 1 class/node.}
\end{figure}
To efficiently construct a set of cliques with small skew, we propose To efficiently construct a set of cliques with small skew, we propose
Greedy-Swap (Algorithm~\ref{Algorithm:D-Clique-Construction}). Greedy-Swap (Algorithm~\ref{Algorithm:D-Clique-Construction}).
We start by initializing cliques at random, using at most $M$ We start by initializing cliques at random, using at most $M$
......
This diff is collapsed.
mlsys2022style/figures/convergence-speed-cifar10-dc-fc-vs-fc-1-class-per-node.png

45.3 KiB

mlsys2022style/figures/convergence-speed-cifar10-dc-fc-vs-fc-2-shards-per-node.png

43.9 KiB

mlsys2022style/figures/convergence-speed-mnist-dc-fc-vs-fc-1-class-per-node.png

42.7 KiB

mlsys2022style/figures/convergence-speed-mnist-dc-fc-vs-fc-2-shards-per-node.png

44.6 KiB

mlsys2022style/figures/convergence-speed-mnist-dc-random-vs-dc-gs-2-shards-per-node.png

56.5 KiB

mlsys2022style/figures/convergence-speed-mnist-dc-rm-1-edge-vs-full.png

60.7 KiB

mlsys2022style/figures/d-cliques-ideal-w-clique-avg-impact-of-edge-removal.png

78.3 KiB

mlsys2022style/figures/d-cliques-ideal-wo-clique-avg-impact-of-edge-removal.png

90.5 KiB

mlsys2022style/figures/d-cliques-w-clique-avg-impact-of-edge-removal.png

72.4 KiB

mlsys2022style/figures/d-cliques-wo-clique-avg-impact-of-edge-removal.png

78.3 KiB

...@@ -14,6 +14,7 @@ export PYTHONPATH=$TOOLS ...@@ -14,6 +14,7 @@ export PYTHONPATH=$TOOLS
# used by the simulator. For a list of available options for each # used by the simulator. For a list of available options for each
# command, run 'export PYTHONPATH=.; <command> --help'. # command, run 'export PYTHONPATH=.; <command> --help'.
for RM_EDGES in 1 5; do for RM_EDGES in 1 5; do
for MOMENTUM in '--learning-momentum 0.9' '--learning-momentum 0.0'; do
for C_GRAD in '--clique-gradient' ''; do for C_GRAD in '--clique-gradient' ''; do
setup/meta.py \ setup/meta.py \
--script $SCRIPT_DIR/`basename "$0"` \ --script $SCRIPT_DIR/`basename "$0"` \
...@@ -31,11 +32,12 @@ setup/nodes/google-fl.py \ ...@@ -31,11 +32,12 @@ setup/nodes/google-fl.py \
setup/topology/d_cliques/greedy_swap.py \ setup/topology/d_cliques/greedy_swap.py \
--interclique fully-connected \ --interclique fully-connected \
--max-clique-size 10 \ --max-clique-size 10 \
--max-steps 1000 | --max-steps 1000 \
--remove-clique-edges $RM_EDGES |
setup/model/gn_lenet.py | setup/model/gn_lenet.py |
simulate/algorithm/d_sgd.py \ simulate/algorithm/d_sgd.py \
--batch-size 20 \ --batch-size 20 \
--learning-momentum 0.9 \ $MOMENTUM \
$C_GRAD \ $C_GRAD \
--learning-rate 0.002 | --learning-rate 0.002 |
simulate/logger.py \ simulate/logger.py \
...@@ -44,4 +46,5 @@ simulate/logger.py \ ...@@ -44,4 +46,5 @@ simulate/logger.py \
simulate/run.py \ simulate/run.py \
--nb-epochs 100; --nb-epochs 100;
done; done;
done;
done done
...@@ -14,6 +14,7 @@ export PYTHONPATH=$TOOLS ...@@ -14,6 +14,7 @@ export PYTHONPATH=$TOOLS
# used by the simulator. For a list of available options for each # used by the simulator. For a list of available options for each
# command, run 'export PYTHONPATH=.; <command> --help'. # command, run 'export PYTHONPATH=.; <command> --help'.
for RM_EDGES in 1 5; do for RM_EDGES in 1 5; do
for MOMENTUM in '--learning-momentum 0.9' '--learning-momentum 0.0'; do
for C_GRAD in '--clique-gradient' ''; do for C_GRAD in '--clique-gradient' ''; do
setup/meta.py \ setup/meta.py \
--script $SCRIPT_DIR/`basename "$0"` \ --script $SCRIPT_DIR/`basename "$0"` \
...@@ -29,11 +30,12 @@ setup/nodes.py \ ...@@ -29,11 +30,12 @@ setup/nodes.py \
--nodes-per-class 10 10 10 10 10 10 10 10 10 10 \ --nodes-per-class 10 10 10 10 10 10 10 10 10 10 \
--local-classes 1 | --local-classes 1 |
setup/topology/d_cliques/ideal.py \ setup/topology/d_cliques/ideal.py \
--remove-clique-edges $RM_EDGES \
--interclique fully-connected | --interclique fully-connected |
setup/model/gn_lenet.py | setup/model/gn_lenet.py |
simulate/algorithm/d_sgd.py \ simulate/algorithm/d_sgd.py \
--batch-size 20 \ --batch-size 20 \
--learning-momentum 0.9 \ $MOMENTUM \
$C_GRAD \ $C_GRAD \
--learning-rate 0.002 | --learning-rate 0.002 |
simulate/logger.py \ simulate/logger.py \
...@@ -42,4 +44,5 @@ simulate/logger.py \ ...@@ -42,4 +44,5 @@ simulate/logger.py \
simulate/run.py \ simulate/run.py \
--nb-epochs 100; --nb-epochs 100;
done; done;
done;
done done
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment