stockfish NNUE question

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

stockfish NNUE question

Post 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
tomitank
Posts: 276
Joined: Sat Mar 04, 2017 12:24 pm
Location: Hungary

Re: stockfish NNUE question

Post 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