import
tflearn
from
tflearn.layers.conv
import
conv_2d, max_pool_2d, input_data
from
tflearn.layers.core
import
dropout, fully_connected
from
tflearn.layers.estimator
import
regression
import
tflearn.datasets.mnist as mnist
x_train,y_train,x_test,y_test
=
mnist.load_data(one_hot
=
True
)
x_train
=
x_train.reshape([
-
1
,
28
,
28
,
1
])
x_test
=
x_test.reshape([
-
1
,
28
,
28
,
1
])
network
=
input_data(shape
=
[
None
,
28
,
28
,
1
], name
=
'input'
)
network
=
conv_2d(network,
32
,
2
, activation
=
'relu'
)
network
=
max_pool_2d(network,
2
)
network
=
conv_2d(network,
64
,
2
, activation
=
'relu'
)
network
=
max_pool_2d(network,
2
)
network
=
fully_connected(network,
512
, activation
=
'relu'
)
network
=
dropout(network,
0.3
)
network
=
fully_connected(network,
10
, activation
=
'softmax'
)
network
=
regression(network, optimizer
=
'adam'
,
learning_rate
=
0.001
,
loss
=
'categorical_crossentropy'
,
name
=
'targets'
)
model
=
tflearn.DNN(network)
model.fit({
'input'
: x_test}, {
'targets'
: y_test},
n_epoch
=
10
,
snapshot_step
=
500
, run_id
=
'mnist'
,
validation_set
=
({
'input'
: x_test}, {
'targets'
: y_test}),
show_metric
=
True
)