Index | Archive | Tags | Atom Feed | RSS Feed

MuZero - Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model

I'm excited to finally share some more details on what we've been working on since AlphaZero.

Recently, we made our latest paper - Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model, aka MuZero - available on arXiv:

Constructing agents with planning capabilities has long been one of the main challenges in the pursuit of artificial intelligence. Tree-based planning methods have enjoyed huge success in challenging domains, such as chess and Go, where a perfect simulator is available. However, in real-world problems the dynamics governing the environment are often complex and unknown. In this work we present the MuZero …

Installing CUDA on Ubuntu 19.10

I just installed CUDA on my Ubuntu 19.10 desktop, and it was a pretty quick process, if non-obivous.

  1. Installed base CUDA with apt install nvidia-cuda-toolkit
  2. Downloaded libcudnn from [cached]nvidia and installed with dpkg -i. (I couldn't find it in the official Ubuntu repo, let me know if it is there)
  3. Set XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/lib/cuda/ so JAX can find the installed libraries.

Fixing stuck login screen for Ubuntu 19.10 and i3

Since upgrading to Ubuntu 19.10, I've had the issue that Ubuntu would just get stuck before or after the login screen.

After some searching I found the recommendation to remove quiet splash from the grub options, and indeed that fixes the issue for me!

Specifically, at the stuck login screen, change to a terminal by pressing e.g. ctrl+alt+f4, login, then run sudo nano /etc/default/grub to edit the configuration for grub (the bootloader). Find the line that says


and change it to


save the file, then run sudo update-grub …

Ubuntu Audio over Display Port

I just upgraded my desktop to the new AMD Ryzen 3900X and on that occasion also replaced my decade (!) old GPU with a recent Nvidia RTX 2060. Initially I couldn't get it to output audio to the speakers in my monitor (connected using DisplayPort).

Finally, using pavucontrol to switch of the other HD-Audio Generic device did the trick.

After some more research I also discovered [cached]volumeicon, a small app that shows a volume control in the system tray (i3 in my case). It can be configured to open an external mixer on click (pavucontrol) and can also be directly …

Splitting >4 GB ISO files for isostick

This is more of an archival post for myself since part of the documentation for [cached]isostick (a USB stick that can emulate optical drives) is down and the project does not seem maintained any more.

Since isostick only supports FAT32 filesystems, ISOs larger than 4 GB need to be split up into multiple parts.

Here's the explanation for how to do this from the now offline isostick forum:

The isostick can only read files from FAT32 partitions. Unfortunately, FAT32 has a maximum file size of 4GB. To overcome this, isostick can read ISO files which are split into multiple …

Kanji Poster

This weekend, I started building a Python script to make a poster using the 2200 kanji included in jōyō kanji list as well as the extra kanji covered in [cached]WaniKani.

Kanji Poster

I'm still experimenting with different ways of ordering and coloring the kanji; for now I've ordered them according to how they appear in Heisig's Remembering the Kanji, and colored them by the log of their frequency in some texts I had.

You can find an example pdf in my github project.

Debugging Android devices with adb on Ubuntu

Just some notes for myself next time.

Either download the [cached]Platform Tools package or directly install adb from the repository:

sudo apt install adb

If you are running Ubuntu, make sure that you are in the plugdev group (sudo usermod -aG plugdev $LOGNAME [cached]if not). You may have to create a udev rule to ensure the device is mounted under the right group.

To do so, create a file /etc/udev/rules.d/51-android.rules:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"

Where vendor and product id …

Lonely Planet on Kindle - The Cheap Way

Lonely Planet guidebooks are nice to get a quick overview of a place, or find some things worth seeing and doing around where you are traveling. However, lobbing around an extra half a kilo or more isn't great.

I'm already carrying my e-reader, so wouldn't it be great if I could just save the relevant sections there?

However, while they do sell an official Kindle edition, I prefer using the paperback versions when planning my trip. So instead of buying it twice, I simple scanned the relevant pages at the office, then cropped them into a single paged pdf with …

VPN with Wireguard

Today I spent some time setting up a Wireguard VPN on a Linode VPS.

Overall the process is not too complicated, but there are some things I was confused about initially. Initially I followed the [cached]guide on the Linode website, but then I switched over to this excellent article: [cached]How to setup a VPN server using WireGuard (with NAT and IPv6).

My biggest confusion was about the distinction between the private IP assigned to the server/client within the VPN, and the externally visible IP of the server (the client does not need a public IP). Importantly, the …

Master one skill at a time instead of learning many at once

Every skill has both a cost to maintain and a cost to learn. Take the case of learning a language: You need to spend some time every day rehearsing vocabulary and grammar you already learned so you don't forget (maintain), then you can also study new words and grammar points (learn).

The maintenance is a fixed cost - you need to spend this time just to not forget what you already know. As you get better, this cost goes down. Either because you can integrate the skill in your normal routine - read news in foreign languages - or because it has become …

© Julian Schrittwieser. Built using Pelican. Theme by Giulio Fidente on github. .