pytorch / ELF

ELF: a platform for game research with AlphaGoZero/AlphaZero reimplementation
Other
3.37k stars 566 forks source link

Successfully Installed and played, but can not play with GoGui #33

Closed Grant-Tao closed 6 years ago

Grant-Tao commented 6 years ago

Thank the facebook go team, and now any one can play GO with a top player.

I have successfully installed ELF and played with the pretrained network, strictly following the instructions here. But I have some further questions:

  1. CuDnn 7.0 is required in the building instruction, but the prebuilt pytorch-nightly was built upone CuDnn 7.1, why?

  2. The Bot played well in the bash command shell, but when I use GoGui 1.4.9 as the graphic interface, following messages appeared: "Text lines before the status character of the first reponse line are not allowed by the GTP standard" "The Go program is not responding to the command 'name'." and the program was stuck there keeping prompt these error messages. any one can give help me? Does the program's debug information cause this problem?

thanks a lot

BIGBALLON commented 6 years ago

Hi, @Grant-Tao

Does the program's debug information cause this problem?

I agree with you. and you can check the issue 17

if you still want to use GoGui. just ignore the warming & click wait image

image

image

Then GoGui can works fine,

image

See issus 27 for more details.

Another method to use the ELF OpenGo weights is download the covered weights, then Run Leela Zero with Sabaki

  1. Build Sabaki
git clone https://github.com/SabakiHQ/Sabaki.git
cd Sabaki
npm install
npm run build
  1. Build Leela Zero
# Test for OpenCL support & compatibility
sudo apt install clinfo && clinfo

# Clone github repo
git clone https://github.com/gcp/leela-zero
cd leela-zero/src
sudo apt install libboost-dev libboost-program-options-dev libopenblas-dev opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev zlib1g-dev
make
  1. Open Sabaki Engines -> ManageEngines -> Add choose LeelaZero's path set arguments --gtp -w your_weights_path if you want to change simulations, add --noponder --playout xxx

image

then it works. image

Good Luck!

Grant-Tao commented 6 years ago

@BIGBALLON thank you very much, you are my sunshine. GOGUI now works very well. As for Leela Zero, who transformed the ELF OpenGO's network weight file into Leela Zero's format? you did it? And with the same policy & value network, which one is better? ELF or Leela? that is, which mcts is better? I will make some tests.

BIGBALLON commented 6 years ago

@Grant-Tao

  1. As for Leela Zero, who transformed the ELF OpenGO's network weight file into Leela Zero's format? you did it?

maybe Leela Zero's Contributors do that, not me. aha.

  1. And with the same policy & value network, which one is better? ELF or Leela? that is, which mcts is better? I will make some tests.

I don't know which is better.(maybe ELF??) But I think use Leela is aslo a good choice(for better documents and help support)

have a good try!

qucheng commented 6 years ago

Hi, Leela Zero's team transformed the weights. For same policy & value network, under the same time setting, ELF engine achieved 980:18 against 4/25 LZ (See release), while LZ-ELF achieved ~93% win rate (LZ's website). Reasons could be due to engine / parameter differences, and ELF is more optimized on V100 GPU.

Narsil commented 6 years ago

Just for the people that don't want to wait, I made a version (hacky) to make it compatible with Sabaki.

https://github.com/Narsil/ELF

It removes some prints in the CPP code and adds a new gtp2.sh script.

You need to have installed with conda into an environment named elf, and downloaded the pretrained binary in scripts/elfgames/go/. Then all you need to do is to add the gtp2.sh as the command in Sabaki (hopefully it will work with GoGui too).

jma127 commented 6 years ago

Thanks to all for your assistance :smile: