Page 1 of 2
Re: tuning info
Posted: Fri Jan 05, 2018 1:04 am
by Daniel Shawul
I think clop may support different optimization algorithms.
I see an C2SPSA.cpp in there though i am not sure what it is used for.
P.S: Does anybody know why latest cutechess-cli does not display results on stdout ?
It plays the game and saves it to a pgn but there is no result output on the screen.
I tried cutechess-cli 1.0 and 0.85, on ubuntu 17.10 -- Qt version 5.9.1
Daniel
Re: tuning info
Posted: Fri Jan 05, 2018 4:04 pm
by petero2
Daniel Shawul wrote:P.S: Does anybody know why latest cutechess-cli does not display results on stdout ?
It plays the game and saves it to a pgn but there is no result output on the screen.
I tried cutechess-cli 1.0 and 0.85, on ubuntu 17.10 -- Qt version 5.9.1
I had this problem in fedora 24. I solved it by adding the following to ~/.config/QtProject/qtlogging.ini:
Re: tuning info
Posted: Fri Jan 05, 2018 6:26 pm
by Daniel Shawul
It works like a charm!
Thanks a lot Peter!
Daniel
Re: tuning info
Posted: Sun Jan 07, 2018 3:27 pm
by Ferdy
elcabesa wrote:The spsa Perl tuner doesn't work very well with vajolet and I don't like to debug the uci interaction between them.
Couple of notes when using spsa from
https://github.com/zamar/spsa/blob/master/spsa.pl
1. Be aware of the game adjudication on stalemate.
When your engine received a stalemate position what bestmove it prints?
Stockfish would print
If your engine returns bestmove 0000,
then the code in line 446,
Code: Select all
$flag_stalemate = 1 if ($array[1] eq '(none)');
should be change to:
Code: Select all
$flag_stalemate = 1 if ($array[1] eq '0000');
2. When parsing engine output info line, make sure the splitted line converted into an array is properly read. At line 452,
Code: Select all
# Check for mate in one
if ($#array >= 9 && $array[0] eq 'info' && $array[1] eq 'depth' &&
$array[7] eq 'score' && $array[8] eq 'mate' && $array[9] eq '1')
{
$flag_mate = 1;
$winner = $engine_to_move;
}
With typical uci engine search output for example.
Code: Select all
info depth 1 score mate 1 nodes 20 nps 1818 tbhits 0 time 11 pv e2e4
The code above must be revised to:
Code: Select all
if ($#array >= 5 && $array[0] eq 'info' && $array[1] eq 'depth' &&
$array[3] eq 'score' && $array[4] eq 'mate' && $array[5] eq '1')
{
...
}
3. There is an unsafe code in line 461, revised this depending on your engine output.
Code: Select all
# Record score
if ($#array >= 7 && $array[0] eq 'info' && $array[1] eq 'depth' &&
$array[7] eq 'score')
{
$score = $array[9] if ($array[8] eq 'cp');
$score = +100000 if ($array[8] eq 'mate' && $array[9] > 0);
$score = -100000 if ($array[8] eq 'mate' && $array[9] < 0);
}
That,
should be change to:
Re: tuning info
Posted: Sun Jan 07, 2018 6:05 pm
by elcabesa
I don't like reinventing the well, we already have the beatiful cutechess-cli to play games.
I think I'll probably port spsa script to python and use cutechess to play games
Re: tuning info
Posted: Tue Jan 09, 2018 4:14 am
by Ferdy
elcabesa wrote:I don't like reinventing the well, we already have the beatiful cutechess-cli to play games.
I think I'll probably port spsa script to python and use cutechess to play games
That is what I understand, you encountered problems running the perl script and you like to use cutechess-cli to run the match. If you follow my suggestions especially the #1 in my previous post, it would solve most of your problems.
There is another somewhat inappropriate behaviour of that perl script when sending
Code: Select all
position fen [FEN] moves m1 m2 ...
It would also send a leading space before the first move.
Example.
Notice the extra space between "moves" and "e2e4"
It would have been.
My program does not like that extra space there. After fixing all of these, I successfully run that perl script without problems.
So far, spsa does not give any rating improvement on Deuterium, but the tuned parameters are not really bad. The values are different but the performance is close. I thought that this is interesting when applied to variants like, shogi, xiangqi, spartan or on the big boards like capablanca/gothic, grand chess and others.