A sneak peek at TorchVision v0.11 – Memoirs of a TorchVision developer – 2

A sneak peek at TorchVision v0.11 – Memoirs of a TorchVision developer – 2

The last couple of weeks were super busy in “PyTorch Land” as we are frantically preparing the release of PyTorch v1.10 and TorchVision v0.11. In this 2nd instalment of the series, I’ll cover some of the upcoming features that are currently included in the release branch of TorchVision. Disclaimer: Though the upcoming release is packed […]

Read More

New Blog series – Memoirs of a TorchVision developer

New Blog series – Memoirs of a TorchVision developer

I’m starting a new blog post series about the development of PyTorch’s computer vision library. I plan to discuss interesting upcoming features primarily from TorchVision and secondary from the PyTorch ecosystem. My target is to highlight new and in-development features and provide clarity of what’s happening in between the releases. Though the format is likely […]

Read More

How to take S3 backups with DejaDup on Ubuntu 20.10

How to take S3 backups with DejaDup on Ubuntu 20.10

DejaDup is the default backup application for Gnome. It’s a GUI for duplicity, focuses on simplicity, supports incremental encrypted backups and up until recently supported a large number of cloud providers. Unfortunately as of version 42.0, all major cloud providers have been removed. Thus given that Ubuntu 20.10 ships with the specific version, any user […]

Read More

Datumbox Machine Learning Framework v0.8.2 released

Datumbox Machine Learning Framework v0.8.2 released

The Datumbox Framework v0.8.2 has been released! Download it now from GitHub or Maven Central Repository. What is new? The version 0.8.2 is a limited incremental release that focuses on resolving bugs and updating the dependencies of the framework. Here are the details: Bug Fixes: Resolved an issue on ShapiroWilk which led to the incorrect […]

Read More

How to get around Dropbox’s symlink limitations on Linux

How to get around Dropbox’s symlink limitations on Linux

As of mid-2019, Dropbox announced that they no longer support symlinks that point outside of the main Dropbox folder. In this tutorial, we show a workaround on Linux that enables us to store in Dropbox any file, even if it is not located within the main Dropbox folder. What is the limitation and why it’s […]

Read More

The Batch Normalization layer of Keras is broken

The Batch Normalization layer of Keras is broken

UPDATE: Unfortunately my Pull-Request to Keras that changed the behaviour of the Batch Normalization layer was not accepted. You can read the details here. For those of you who are brave enough to mess with custom implementations, you can find the code in my branch. I might maintain it and merge it with the latest […]

Read More

5 tips for multi-GPU training with Keras

5 tips for multi-GPU training with Keras

Deep Learning (the favourite buzzword of late 2010s along with blockchain/bitcoin and Data Science/Machine Learning) has enabled us to do some really cool stuff the last few years. Other than the advances in algorithms (which admittedly are based on ideas already known since 1990s aka “Data Mining era”), the main reasons of its success can […]

Read More

Ubuntu 17.10: a last minute review

Ubuntu 17.10: a last minute review

On October 19 2017, Ubuntu 17.10 will be released and as many of you know it packs lots of significant changes. I spend a week testing the Beta 2 and in this “last minute” review, I document some of the less obvious features/gotchas of Ubuntu 17.10. I also share with you my experience and provide […]

Read More

Datumbox Machine Learning Framework v0.8.1 released

Datumbox Machine Learning Framework v0.8.1 released

The Datumbox v0.8.1 has been released! Download it now from Github or Maven Central Repository. What is new? The main focus of version 0.8.1 is to resolve various bugs, update the depedencies and improve the code architecture of the framework. Here are the details: Dependencies: Updated the Maven Compiler, Nexus Staging, Surefire, SLF4J and Logback […]

Read More

Drilling into Spark’s ALS Recommendation algorithm

Drilling into Spark’s ALS Recommendation algorithm

The ALS algorithm introduced by Hu et al., is a very popular technique used in Recommender System problems, especially when we have implicit datasets (for example clicks, likes etc). It can handle large volumes of data reasonably well and we can find many good implementations in various Machine Learning frameworks. Spark includes the algorithm in […]

Read More

Getting the GPU usage of NVIDIA cards with the Linux dstat tool

Getting the GPU usage of NVIDIA cards with the Linux dstat tool

The dstat is an awesome little tool which allows you to get resource statistics for your Linux box. It has a modular architecture which allows you to develop additional plugins and it’s easy to use. Recently I was profiling a Deep Learning pipeline developed with Keras and Tensorflow and I needed detailed statistics about the […]

Read More

Datumbox Machine Learning Framework version 0.8.0 released

Datumbox Machine Learning Framework version 0.8.0 released

Datumbox Framework v0.8.0 is out and packs several powerful features! This version brings new Preprocessing, Feature Selection and Model Selection algorithms, new powerful Storage Engines that give better control on how the Models and the Dataframes are saved/loaded, several pre-trained Machine Learning models and lots of memory & speed improvements. Download it now from Github […]

Read More

Datumbox Machine Learning Framework 0.7.0 Released

Datumbox Machine Learning Framework 0.7.0 Released

I am really excited to announce that, after several months of development, the new version of Datumbox is out! The 0.7.0 version brings multi-threading support, fast disk-based training for datasets that don’t fit in memory, several algorithmic enhancements and better architecture. Download it now from Github or Maven Central Repository. What is new? The focus […]

Read More

Datumbox Machine Learning Framework 0.6.1 Released

Datumbox Machine Learning Framework 0.6.1 Released

The new version of Datumbox Machine Learning Framework has been released! Download it now from Github or Maven Central Repository. What is new? The main focus of version 0.6.1 is to resolve various bugs, reduce memory consumption and improve speed. Let’s see in detail the changes of this version: Bug Fixes: A minor issue related […]

Read More

Datumbox Machine Learning Framework 0.6.0 Released

Datumbox Machine Learning Framework 0.6.0 Released

The new version of Datumbox Machine Learning Framework has been released! Download it now from Github or Maven Central Repository. What is new? The main focus of version 0.6.0 is to extend the Framework to handle Large Data, improve the code architecture and the public APIs, simplify data parsing, enhance the documentation and move to […]

Read More

How to install and use the Datumbox Machine Learning Framework

How to install and use the Datumbox Machine Learning Framework

In this guide we are going to discuss how to install and use the Datumbox Machine Learning framework in your Java projects. Since almost all of the code is written in Java, using it is as simple as including it as dependency in your Java project. Nevertheless a couple of classes (DataEnvelopmentAnalysis and LPSolver) use […]

Read More

New open-source Machine Learning Framework written in Java

New open-source Machine Learning Framework written in  Java

I am happy to announce that the Datumbox Machine Learning Framework is now open sourced under GPL 3.0 and you can download its code from Github! What is this Framework? The Datumbox Machine Learning Framework is an open-source framework written in Java which enables the rapid development of Machine Learning models and Statistical applications. It […]

Read More

Clustering with Dirichlet Process Mixture Model in Java

Clustering with Dirichlet Process Mixture Model in Java

In the previous articles we discussed in detail the Dirichlet Process Mixture Models and how they can be used in cluster analysis. In this article we will present a Java implementation of two different DPMM models: the Dirichlet Multivariate Normal Mixture Model which can be used to cluster Gaussian data and the Dirichlet-Multinomial Mixture Model […]

Read More

Clustering documents and gaussian data with Dirichlet Process Mixture Models

Clustering documents and gaussian data with Dirichlet Process Mixture Models

This article is the fifth part of the tutorial on Clustering with DPMM. In the previous posts we covered in detail the theoretical background of the method and we described its mathematical representationsmu and ways to construct it. In this post we will try to link the theory with the practice by introducing two models […]

Read More

The Dirichlet Process Mixture Model

The Dirichlet Process Mixture Model

This blog post is the fourth part of the series on Clustering with Dirichlet Process Mixture Models. In previous articles we discussed the Finite Dirichlet Mixture Models and we took the limit of their model for infinite k clusters which led us to the introduction of Dirichlet Processes. As we saw, our target is to […]

Read More

The Dirichlet Process the Chinese Restaurant Process and other representations

The Dirichlet Process the Chinese Restaurant Process and other representations

This article is the third part of the series on Clustering with Dirichlet Process Mixture Models. The previous time we defined the Finite Mixture Model based on Dirichlet Distribution and we posed questions on how we can make this particular model infinite. We briefly discussed the idea of taking the limit of the model when […]

Read More

Finite Mixture Model based on Dirichlet Distribution

Finite Mixture Model based on Dirichlet Distribution

This blog post is the second part of an article series on Dirichlet Process mixture models. In the previous article we had an overview of several Cluster Analysis techniques and we discussed some of the problems/limitations that rise by using them. Moreover we briefly presented the Dirichlet Process Mixture Models, we talked about why they […]

Read More

Overview of Cluster Analysis and Dirichlet Process Mixture Models

Overview of Cluster Analysis and Dirichlet Process Mixture Models

In the ISO research project for my MSc in Machine Learning at Imperial College London, I focused on the problem of Cluster Analysis by using Dirichlet Process Mixture Models. The DPMMs is a “fully-Bayesian” unsupervised learning technique which unlike other Cluster Analysis methods does not require us to predefine the total number of clusters within […]

Read More

Using Artificial Intelligence to solve the 2048 Game (JAVA code)

Using Artificial Intelligence to solve the 2048 Game (JAVA code)

By now most of you have heard/played the 2048 game by Gabriele Cirulli. It’s a simple but highly addictive board game which requires you to combine the numbers of the cells in order to reach the number 2048. As expected the difficulty of the game increases as more cells are filled with high values. Personally […]

Read More

Measuring the Social Media Popularity of Pages with DEA in JAVA

Measuring the Social Media Popularity of Pages with DEA in JAVA

In the previous article we have discussed about the Data Envelopment Analysis technique and we have seen how it can be used as an effective non-parametric ranking algorithm. In this blog post we will develop an implementation of Data Envelopment Analysis in JAVA and we will use it to evaluate the Social Media Popularity of […]

Read More

Data Envelopment Analysis Tutorial

Data Envelopment Analysis Tutorial

Data Envelopment Analysis, also known as DEA, is a non-parametric method for performing frontier analysis. It uses linear programming to estimate the efficiency of multiple decision-making units and it is commonly used in production, management and economics. The technique was first proposed by Charnes, Cooper and Rhodes in 1978 and since then it became a […]

Read More

How to build your own Facebook Sentiment Analysis Tool

How to build your own Facebook Sentiment Analysis Tool

In this article we will discuss how you can build easily a simple Facebook Sentiment Analysis tool capable of classifying public posts (both from users and from pages) as positive, negative and neutral. We are going to use Facebook’s Graph API Search and the Datumbox API 1.0v. Similar to the Twitter Sentiment Analysis tool that […]

Read More

Developing a Naive Bayes Text Classifier in JAVA

Developing a Naive Bayes Text Classifier in JAVA

In previous articles we have discussed the theoretical background of Naive Bayes Text Classifier and the importance of using Feature Selection techniques in Text Classification. In this article, we are going to put everything together and build a simple implementation of the Naive Bayes text classification algorithm in JAVA. The code of the classifier is […]

Read More

Using Feature Selection Methods in Text Classification

Using Feature Selection Methods in Text Classification

In text classification, the feature selection is the process of selecting a specific subset of the terms of the training set and using only them in the classification algorithm. The feature selection process takes place before the training of the classifier. Update: The Datumbox Machine Learning Framework is now open-source and free to download. Check […]

Read More