6 from keras.models import Sequential
7 from keras.layers import Dense,Dropout,Activation
13 self.model1,self.model2 = Sequential(),Sequential()
15 self.model1.add(Dense(100,input_shape=(64,)))
16 self.model1.add(Activation('relu'))
17 self.model1.add(Dropout(0.25))
19 self.model1.add(Dense(100))
20 self.model1.add(Activation('relu'))
21 self.model1.add(Dropout(0.25))
23 self.model1.add(Dense(64))
24 self.model1.add(Activation('softmax'))
27 loss='categorical_crossentropy',
31 self.model2.add(Dense(100,input_shape=(64,)))
32 self.model2.add(Activation('sigmoid'))
33 self.model2.add(Dropout(0.25))
34 self.model2.add(Dense(100))
35 self.model2.add(Activation('sigmoid'))
36 self.model2.add(Dropout(0.25))
37 self.model2.add(Dense(64))
38 self.model2.add(Activation('softmax'))
40 loss='categorical_crossentropy',
44 def sente_stone(self,X_train,Y_train):
45 hdf5_file = 'sente-model.hdf5'
46 if os.path.exists(hdf5_file):
47 self.model1.load_weights(hdf5_file)
48 X,Y = np.array(X_train),np.array(Y_train)
49 X = np.reshape(np.float32(X),(1,64))
50 Y = np.reshape(np.float32(Y),(1,64))
52 res = self.model1.predict(X,None,0)
62 self.model1.save_weights(hdf5_file)
63 return [s // 8, s % 8]
65 def gote_stone(self,X_train,Y_train):
66 hdf5_file = 'gote-model.hdf5'
67 if os.path.exists(hdf5_file):
68 self.model2.load_weights(hdf5_file)
69 X,Y=np.array(X_train),np.array(Y_train)
70 X = np.reshape(np.float32(X),(1,64))
71 Y = np.reshape(np.float32(Y),(1,64))
73 res = self.model2.predict(X,None,0)
83 self.model2.save_weights(hdf5_file)
84 return [s // 8, s % 8]