Giter Site home page Giter Site logo

vgg47 / local-sgd Goto Github PK

View Code? Open in Web Editor NEW
2.0 4.0 3.0 21.88 MB

Local SGD implementation based on https://arxiv.org/abs/1805.09767

Home Page: https://www.overleaf.com/read/kkfbfbtngnyv

Python 99.77% Shell 0.23%
science optimization computational-mathematics mipt gradient-descent

local-sgd's Introduction

Как запустить код на кластере?

Склонируйте репозиторий:

git clone https://github.com/vgg47/local_sgd/ local_sgd

Перейдите в папку с проектом:

сd local_sgd

Добавьте все необходимые пакеты:

module add python/3.7 tensorflow/1.14 mpi/openmpi4-x86_64 
pip install scipy mpi4py --user

Для запуска алгоритма выполните команду

sbatch -n 20 ./run.sh 

-n - количество воркеров

В run.sh зашита конфигурация запуска алгоритма, приведу описание флагов:

--steps, -s		количество шагов градиентного спуска, дефолтно 10^3
--sync			количество синхронизации между воркерами, дефолтно 1
--dataset, -d		путь к файлу с датасетом, дефолтно ./data/default_data.csv
--labels, -l		путь к файлу со значениями таргета, дефолтно ./data/default_labels.csv
--batch-size, -b	размер батча, дефолтно 16
--precision		минимальное евклидово расстояние, на которое должны изменяться веса на каждом шаге 
			градиентного спуска, дефолтно 10^-8

Все их нужно добавлять к строке:

mpiexec  python3 script.py 

Внимание

Если у вас нет датасета, то его можно сгенерить. Запустите data_generator.py. При запуске скрипт сначала считывает количество строк в датасете, а затем количество фичей. Названия файлов можно не указывать, тогда и при запуске алгоритма флажки с директориями можно будет опустить, потому что будут использоваться дефолтные значения. Для демонстрации отлично подходит датасет размером 10000 * 100.

Для запуска тестов и скриптов отрисовки графиков необходимо предварительно нарезать данные на партиции. Чтобы сделать это запустите скрипт partitioner.py, указав ему в аргументы директории данных и размер шага для размера партиции (10% от размера датасета подойдет). После этого запускайте файл test.py.

local-sgd's People

Contributors

alekiks avatar corwinnn avatar vgg47 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.