How to Run Leela Chess Engine (LCZero) in Arena at a Specific ELO

Leela chess is an open fork of AlphaZero. Unfortunately, Google didn’t let us have the program, but they released a paper detailing how they did it , and Leela is the result. Since no single person has the resources of Google, this is a distributed project where Leela trains herself across hundreds of computers. We make up in numbers, what we lack in sheer power.

If you want to contribute your GPU to helping Leela chess get stronger, visit the project page and get started! You can also play an online version of Leela at her strongest current strength at http://play.lczero.org/.

However, the great thing about Leela is that you can also download the engine and play her at lower ELOs. This is a completely different compared to playing an engine like Stockfish at half strength. Modern chess engines will artificially lower their strength by blundering unnaturally and then play like a GM for the rest of the game. Leela’s games at lower ELOs are much more “human”, making her an excellent sparring partner!

In this tutorial, I’ll show you how to set up Leela on your local PC and plug her into a chess GUI like Arena.

Step 1: What you Need

Here’s what you need to have/know in preparation for Leela:

  1. The Arena chess program. Available here.
  2. You need to know what “rating” you want to play Leela at (more on this later)

Step 2: Determining your Rating

As Leela trains herself, she keeps increasing her rating – with a rating of “0” being random moves. Unfortunately, these self play ratings don’t translate directly into “human” ratings. As of this writing, Leela’s self plaly rating is 4343. But her ELO as understood by us is ~2000.

So to download a version of Leela that matches your ELO, use the following formula:

x = (y+511.7)/0.6

where:

x = Leela’s self play rating and
y = Your rating/the ELO you want to play Leela at

So for example, if I want to play a version of Leela at ELO 1500, her self calculated rating at that level will be:

(1500+511.7)/0.6 = 3352

Step 3: Download the Appropriate Network Weight

With the rating you obtained in Step 2, head over to Leela’s network weights page. This page contains the snapshots of Leela as she gets stronger. Each snapshot is represented by an ID. You can see her self play ELO in column 3. Scroll down till you find the ID that most closely corresponds to the self play ELO you calculated in step 2.

In this case, network ID 19 has an ELO of 3319, which is pretty close to 3352 which I calculated in the previous step. So I’ll use that one.

Click the link and it’ll download a file onto your desktop. This is a compressed file, that needs a program to open it. To get your software to recognize it as compressed, you need to rename it with a “.gz” extension. Like this:

Once your computer recognizes it, decompress the contents.

It will be a single file. Make a note of its location.

Step 4: Download the Leela Engine Bundle

Get the latest engine bundle for your system from the project download link. I’ve chosen the CPU version for Windows, because that’s my system configuration.

This will be a zip file. Unzip the contents into a folder called “Leela”.

Step 5: Put the Files Together into the “Engine” Folder in Arena

Now you have two downloads. Namely:

  1. The network weight file you downloaded in step 3
  2. The Leela engine (lczero.exe) that you downloaded in step 4

Put all these files in the same folder. Call the folder “Leela”, or “LCzero”, or whatever name you want to appear in Arena. Now transfer this entire folder into the “Engines” directory of Arena. This is the folder structure with the files:

Now it’s time to configure Arena with Leela!

Step 6: Installing the Leela LCZero Engine in Arena

Open the Arena program, click the “Engines” tab on top and click “Manage”

In the resulting window, click the “Details” tab and click the “New” button as shown here:

This will open a dialogue box asking for the location of the engine. Navigate to the “Leela” folder you created in step 5, and select “lczero.exe” as the engine.

In the next box, select “UCI” as the type of engine:

After selecting the engine, we need to enter the command line parameters in the box provided. Here, use the network weight file you extracted in step 3, in the following:

-w 209032b7

Replace the text in bold, with the name of your network weight file.

Then click “Apply” and then the button “Start this engine right now!”

And you’re done! The dialogue box will vanish, and Leela will now be the engine in Arena, running at the ELO strength you selected. Here’s a sample output from the Queen’s Gambit Accepted line.

What if the Above Doesn’t Work?

Sometimes the above steps fail for some reason. Leela just won’t start. So here’s something that has worked for a lot of people.

Step 1: Go to your engines folder in Arena

Step 2: Create a “lczero.bat” file and open it for editing

Step 3: Type the following into it:

@lczero.exe -w [network weight name]

Make sure you replace the section in square brackets with the network weight name you downloaded and unzipped in Step 3.

Step 4: Now go set up the engine again. This time, instead of choosing lczero.exe, click the drop down box labelled “Files of type” and select “Batch files (*.bat) instead.

Step 5: Now lczero.bat should be visible. Click on it and choose it as the engine.

Now just run your engine! Wait for a while for it to load and do its thing. No need to enter any command line parameters like before. These steps have helped a lot of people when just using lczero.exe directly didn’t work.

I hope these instructions make it easy for people to get started with running and experimenting with Leela. If you have a GPU, you can also use the bundled “client.exe” file to contribute your own GPU cycles for training games to help make Leela better!

32 Comments
What could we have done differently to prevent Trump from capturing the white house? Unfortunately, liberals are responsible for this mess we see in front of us today. The situation could have been defused long before it reached this point. Hopefully, we will all come away from this election cycle, a little bit wiser. So that this doesn't happen again.

Trump’s Rise: Lessons for Liberals

Trump won, and we never saw it coming. We thought it might be close, but no one - possibly not even his supporters - thought he would win. This is just a continuation of a right wing wave throughout the world. Modi in India. Brexit in the UK. Trump … [Continue reading]

27 Comments

Do Indians Hate Air Conditioners?

How often have you heard the following on Facebook, or the comment sections of blogs: "You're sitting in an air conditioned room and passing judgment"   "People are passing comments from their A/C rooms, without understanding … [Continue reading]

11 Comments
Two people should never be forced to remain married to each other. If a guy badly wants to live with his parents after marriage, and the girl is 100% opposed to it, what's wrong with granting a divorce? It's the right thing to do. And the same thing should happen if the genders are reversed.

Why not Divorce if the Guy can’t Live with His Parents?

Recently, a court granted a divorce to a guy because his wife insisted that he can't live with his parents. A lot of blogs and articles have denounced this verdict and called it discriminatory. But I disagree. I think it's a great thing. Here are the … [Continue reading]

15 Comments
It's high time we stopped over glorifying the military in India. Yes, they risk their lives while doing their job. But so do others in thousands of equally important professions. Not everyone joins the armed forces out of patriotism either. Moreover, a soldier is trained to follow orders. They have little choice over whether or not they think their actions have any meaning.

Can We Please Stop Over Glorifying “Our Soldiers”?

I'm getting sick of the glorification of the Indian army on social media and in the newspapers. Every time there's even the slightest deviation from the nationalistic narration, "soldier's lives" are brought into the discussion. Comments … [Continue reading]

30 Comments

This Guy is an Asshole for Being Rude – Not for Disliking Dogs!

You might have heard this story on Buzzfeed on how a Bangalore girl rejected a guy for not liking dogs. Instead of handing rejection gracefully, this asshole then tries to force his opinion down her throat telling her that "it's just a temporary … [Continue reading]

8 Comments
Most of the time, personal bloggers will never need to have a self hosted blog. Using WordPress.com will ensure that you content stays up even after you die, and you don't have to bother about security, speed, compatibility, and cost.
<br></br>flickr photo by takamorry https://flickr.com/photos/takamorry/4021813470 shared under a Creative Commons (BY) license

Why I Have a Self Hosted Blog

The other day, a blogger friend of mine asked me whether she should shift to a self hosted blog or not. She's currently using WordPress.com and since I've been self hosting for 8 years, decided to ask for my advice. Hers is a person blog. My … [Continue reading]

3 Comments
The terrorists hate our freedoms. So what do we do in response to a terrorist attack? We clamp down on our freedoms! Can there by any worse capitulation and humiliation than this? And we in India are doing exactly the same thing.
<br>flickr photo by CharlesFred https://flickr.com/photos/charlesfred/3828019118 shared under a Creative Commons (BY-NC-SA) license</br>

The Burkini Fiasco Plays into the Terrorist’s Hands

What do the terrorists want? They want you to become like them. They hate free countries - their speech, their ways of dressing, their liberal lives. Their security. Their fearlessness. And how are the liberal nations responding? By giving the … [Continue reading]

14 Comments
I find rubber bullets perfectly acceptable to use against dangerous mobs. If you get violent, you don't get any sympathy from me. What I want is to see rubber bullets used for ALL violent riots in India, including political and communal ones.

I Want MORE Rubber Bullets Used in India – Not Less!

There's been a lot of outrage over the rubber bullets used by security forces against the Kashmiri protesters. A group has also morphed celebrity photos with pellet marks to raise awareness against their use. I get it - they're dangerous, they can … [Continue reading]

1 Comment
White people do not have

Why “White Privilege” Doesn’t Make Sense

Even though I'm not Caucasian, the term "white privilege" pisses me off. I'm not sure why. Maybe because I believe deeply that asking an entire section of people to watch themselves or "check their privilege" is insulting. It groups white people … [Continue reading]

13 Comments