Page 1 of 1

stockfish NNUE question

Posted: Thu Jan 21, 2021 5:06 am
by jdart
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

Re: stockfish NNUE question

Posted: Thu Jan 21, 2021 7:13 pm
by tomitank
jdart wrote: Thu Jan 21, 2021 5: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