TensorFlow’s custom data format TFRecord is really useful. The files are supported natively by the blazing fast tf.data API, support distributed datasets, leverage parallel I/O. But they are somewhat overwhelming at first. This post serves as a practical introduction.
We will first go over the concept behind TFRecord files. With this in mind, we can then go on to work with image data; we will use both a small and a large dataset. Expanding our knowledge, we then work with audio data. The last large domain is the text domain, which we’ll cover as well. …
Have you ever asked yourself where you currently are on your Machine Learning journey? And what’s there that you can still learn about?
This checklist helps you answer such questions. It provides an outline of the field, divided into three broad levels: Entry level (where everybody starts), intermediate level (where you quickly get to), and advanced level (where you stay for a long time). It does not list specific courses or software but focuses on the general concepts:
Let’s cover the levels in more detail, starting with the entry level.
When working with image data, practitioners often use augmentations. Augmentations are techniques that artificially and randomly alter the data to increase diversity. Applying such transformations to the training data makes the model more robust. For image data, frequently used candidates are rotating, resizing, or blurring. The effects of the transformations are easy to see and comprehend. Even multiple augmentations can be grasped quickly, as the following example shows:
Such augmentations are not restricted to images (though they are pretty popular there). For audio data, there are similar ways to modify the training data. The downside is that one cannot observe…
In short, the core idea behind generative networks is capturing the underlying distribution of the data. This distribution can not be observed directly, but has to be approximately inferred from the training data. Over the years, many techniques have emerged that aim to generate data similar to the input samples.
This post intends to give you an overview of the evolution, beginning with the AutoEncoder, describing its descendant, the Variational AutoEncoder, then taking a look at the GAN, and ending with the CycleGAN as an extension to the GAN setting.
Early deep generative approaches used AutoEncoders . These networks aim…
The common approaches to handling user-specific settings include parsing command line arguments or using separate python files that store definitions. For small projects, these techniques are easy to incorporate and maintain.
However, once you have to handle a plethora of configurable (hyper-)parameters, you’ll quickly lose track of the situation.
As a starting point, consider this straightforward code snippet:
If you only work with a couple of parameters, say five to ten, you are fine with manipulating them via the command line, like so:
Alternatively, you could also store these values in a separate python file and give them…
The ability to make machines learn is a fascinating achievement of the last decades. Many new business opportunities have opened up, and companies use Machine Learning on a day-to-day basis.
It was only a couple of years ago that DeepMind’s AlphaGo algorithm beat Go world champion Lee Sedol. This spectacular feat was made possible with the help of Reinforcement Learning but unquestionably did not come overnight. The research for this ambitious project started in the early 2000s. And the field in itself has progressed a lot since then. …
As the moderator introduces the speaker, I look at the audience. I recognize some politicians from several neighbouring countries, artists, and other known people. How did I even get here? It was by pure happenchance, an old friend had tickets but was prevented from going. So she asked me if I am interested. Not knowing what to expect, I said yes.
Applause breaks out as the speaker enter the stage, goes behind the podium and begins with a question.
“Who has ever been to a car mechanic?”
Everybody in the room raises their hand, except a few young children.
After preparing for a long time, I recently took and passed the TensorFlow Developer Certificate exam. This exam tests your proficiency in using TensorFlow for image, time-series, and text data. Beyond these domains, it also covers strategies to reduce overfitting, such as augmentations and dropout layers.
There are two reasons why you should attempt the exam. First, getting this certificate is a great incentive to learn TensorFlow. Secondly, it’s also an excellent opportunity to certify and showcase your skills.
Custom training loops offer great flexibility. You can quickly add new functionality and gain deep insight into how your algorithm works under the hood. However, setting up custom algorithms over and over is tedious. The general layout often is the same; it’s only tiny parts that change.
This is where the following template comes into play: It outlines a custom and distributed training loop. All places that you have to modify to fit your task are highlighted with TODO notes.
A custom training loop — as opposed to calling model.fit() — is a mechanism that iterates over the datasets, updates…
Image datasets can be explored easily. Even if we have hundreds of images, we can scroll through directories and glance at the data. This way, we can quickly notice interesting properties: Colours, locations, time of the day. However, would we use the same strategy for audio datasets, we would not get far. Instead, we had to listen or skip through a single file at a time. For a large number of samples, this approach is prohibitive.
A solution is to visualize the audio files. Rather than listening to the samples sequentially, we plot different characteristics. …