  End-to-end learning of communications systems is a fascinating novel concept
that has so far only been validated by simulations for block-based
transmissions. It allows learning of transmitter and receiver implementations
as deep neural networks (NNs) that are optimized for an arbitrary
differentiable end-to-end performance metric, e.g., block error rate (BLER). In
this paper, we demonstrate that over-the-air transmissions are possible: We
build, train, and run a complete communications system solely composed of NNs
using unsynchronized off-the-shelf software-defined radios (SDRs) and
open-source deep learning (DL) software libraries. We extend the existing ideas
towards continuous data transmission which eases their current restriction to
short block lengths but also entails the issue of receiver synchronization. We
overcome this problem by introducing a frame synchronization module based on
another NN. A comparison of the BLER performance of the "learned" system with
that of a practical baseline shows competitive performance close to 1 dB, even
without extensive hyperparameter tuning. We identify several practical
challenges of training such a system over actual channels, in particular the
missing channel gradient, and propose a two-step learning procedure based on
the idea of transfer learning that circumvents this issue.
