Sorry, I have some remarks to add:
This is a 19x19 CNN, with a fully connected final layer, therefore it
can not be used for other than 19x19.
My actual CNNs do not use a fully connected final layer, but I use more
input layers (which did not improve prediction rate a lot).
If somebody wants to use them it is not problem to offer them too, the
files are actually not in oakfoam reporitory:(
But I do not use last move features, as my experience was, it is weaker
in MC intergration....
I did not do any playing tests without MC! On CGOS 13x13 I have two
players (NiceGo) with 50 and 1k playouts running at the moment...
Detlef
Am 27.04.2015 um 14:24 schrieb Detlef Schmicker:
Sorry, it is not,
but I offer my trained DCNN http://physik.de/net.tgz
it has about 44% prediction rate and uses only the position....
it a a caffe file which is quite easy to use:
void Engine::getCNN(Go::Board *board,Go::Color col, float result[])
{
int size=board->getSize();
float *data;
data= new float[2*size*size];
//fprintf(stderr,"2\n");
if (col==Go::BLACK) {
for (int j=0;j<size;j++)
for (int k=0;k<size;k++)
{//fprintf(stderr,"%d %d %d\n",i,j,k);
if (board->getColor(Go::Position::xy2pos(j,k,size))==Go::BLACK)
{
data[j*size+k]=1.0;
data[size*size+size*j+k]=0.0;
}
else if
(board->getColor(Go::Position::xy2pos(j,k,size))==Go::WHITE)
{
data[j*size+k]=0.0;
data[size*size+size*j+k]=1.0;
}
else
{
data[j*size+k]=0.0;
data[size*size+size*j+k]=0.0;
}
}
}
if (col==Go::WHITE) {
for (int j=0;j<size;j++)
for (int k=0;k<size;k++)
{//fprintf(stderr,"%d %d %d\n",i,j,k);
if (board->getColor(Go::Position::xy2pos(j,k,size))==Go::BLACK)
{
data[j*size+k]=0.0;
data[size*size+size*j+k]=1.0;
}
else if
(board->getColor(Go::Position::xy2pos(j,k,size))==Go::WHITE)
{
data[j*size+k]=1.0;
data[size*size+size*j+k]=0.0;
}
else
{
data[j*size+k]=0.0;
data[size*size+size*j+k]=0.0;
}
}
}
Blob<float> *b=new Blob<float>(1,2,size,size);
b->set_cpu_data(data);
vector<Blob<float>*> bottom;
bottom.push_back(b);
const vector<Blob<float>*>& rr = caffe_test_net->Forward(bottom);
//for (int j=0;j<19;j++)
//{
//for (int k=0;k<19;k++)
// {
// fprintf(stderr,"%5.3f ",rr[0]->cpu_data()[j*19+k]);
// }
//fprintf(stderr,"\n");
//}
for (int i=0;i<size*size;i++) {
result[i]=rr[0]->cpu_data()[i];
if (result[i]<0.00001) result[i]=0.00001;
}
delete[] data;
delete b;
}
Am 27.04.2015 um 13:44 schrieb Petr Baudis:
On Mon, Apr 27, 2015 at 12:35:05PM +0200, Detlef Schmicker wrote:
I dont see a reason, why there should be any problems using it with
DNN on 19x19 trained network. If a 25x25 will be sheduled, I will
take part :)
I'm sorry for being unclear! I actually meant DCNN as a standalone
player, not part of MCTS. Is it possible to run oakfoam's DCNN
implementation like that? (Have you measured its stength?)
Thanks,
Petr Baudis
_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go
_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go
_______________________________________________
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go