stockfish NNUE question

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
jdart
Posts: 4103
Joined: Fri Mar 10, 2006 4:23 am
Location: http://www.arasanchess.org

stockfish NNUE question

Post by jdart » Thu Jan 21, 2021 4:06 am

What is the function of Features::Side::kFriend? This is defined as:

enum class Side {
kFriend // side to move
};

and it is used as template parameter. But isn't this just a constant, since Side has only one value defined? How is it the "side to move?"

--Jon

tomitank
Posts: 258
Joined: Sat Mar 04, 2017 11:24 am
Location: Hungary

Re: stockfish NNUE question

Post by tomitank » Thu Jan 21, 2021 6:13 pm

jdart wrote:
Thu Jan 21, 2021 4:06 am
What is the function of Features::Side::kFriend? This is defined as:

enum class Side {
kFriend // side to move
};

and it is used as template parameter. But isn't this just a constant, since Side has only one value defined? How is it the "side to move?"

--Jon
Hi!

I know this is not the answer to your question, but:
I think, that SF training code is too complicated. Unnecessarily? I don't know, but you can do that much simpler. You will get a similar result.
Write your own NN and use this idea to training for chess:
http://talkchess.com/forum3/viewtopic.p ... 72#p874960
You will learn a lot more.
I think over-parameterizing the input is unnecessary. 768 input is enough. (maybe you can try to add castling for each side -> then you need 772 inputs. I haven't tested this.)

Here is my solution without training code:
https://github.com/tomitank/tomitankChe ... nkChess.js

it's very-very easy!

-Tamás

Post Reply