Projects

dynbatcher - Dynamic Batch Size Dataloader Generator Permalink

Published:

dynbatcher is a Python package designed to facilitate the creation and management of PyTorch DataLoaders with custom batch sizes and ratios. This package is especially useful for training neural networks with dynamic batch sizes. With dynbatcher you can divide a dataset into subsets with different batch sizes and turn it into a single Dataloader ready for training. Github Repo PyPI

SplitOut: Code Repository of Paper Permalink

Published:

Split learning enables efficient and privacy-aware training of a deep neural network by splitting a neural network so that the clients (data holders) compute the first layers and only share the intermediate output with the central compute-heavy server. This paradigm introduces a new attack medium in which the server has full control over what the client models learn, which has already been exploited to infer the private data of clients and to implement backdoors in the client models. Although previous work has shown that clients can successfully detect such training-hijacking attacks, the proposed methods rely on heuristics, require tuning of many hyperparameters, and do not fully utilize the clients’ capabilities. In this work, we show that given modest assumptions regarding the clients’ compute capabilities, an out-of-the-box outlier detection method can be used to detect existing training-hijacking attacks with almost-zero false positive rates. We conclude through experiments on different tasks that the simplicity of our approach we name SplitOut makes it a more viable and reliable alternative compared to the earlier detection methods.

ML Projects from Scratch Permalink

Published:

Here I collect some basic ML, NN models that I wrote from scratch to learn how they works. Some of them are repetitions of codes already written in the tutorials, with new comments and code simplifications made on them. For credits, see below: Github Repo