Visualization


In [6]:
from keras.models import Sequential,load_model
from keras.layers.core import Dense, Activation,Flatten
from keras.layers.convolutional import Conv2D, MaxPooling2D
from keras.layers.normalization import BatchNormalization
from keras import optimizers

model = Sequential()
        
model.add(Conv2D(filters=128,kernel_size=3,input_shape=(4,4,1)))
model.add(BatchNormalization())
model.add(Activation('relu'))

#for i in range(blocksize-1):
#    model.add(Conv2D(filters=64,kernel_size=3))
#    model.add(BatchNormalization())
#    model.add(Activation('relu'))
        
model.add(Conv2D(filters=128,kernel_size=2))
model.add(BatchNormalization())
model.add(Activation('relu'))

model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dense(32))
model.add(Activation('relu'))
model.add(Dense(4))
model.add(Activation('relu'))

adam = optimizers.Adam(lr=1e-6)
model.compile(loss='mse',optimizer=adam)
        
from keras.utils import plot_model
plot_model(model, to_file='alphago.png',show_shapes=True,show_layer_names=False)

In [2]:
from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot

SVG(model_to_dot(model).create(prog='dot', format='svg'))


Out[2]:
G 1883458264536 conv2d_1_input: InputLayer 1883458236312 conv2d_1: Conv2D 1883458264536->1883458236312 1883458261288 batch_normalization_1: BatchNormalization 1883458236312->1883458261288 1883672861608 activation_1: Activation 1883458261288->1883672861608 1883672862056 flatten_1: Flatten 1883672861608->1883672862056 1883673092672 dense_1: Dense 1883672862056->1883673092672 1883673815528 activation_2: Activation 1883673092672->1883673815528 1883673967864 dense_2: Dense 1883673815528->1883673967864 1883673967304 activation_3: Activation 1883673967864->1883673967304 1883674043840 dense_3: Dense 1883673967304->1883674043840 1883674112912 activation_4: Activation 1883674043840->1883674112912

In [ ]: