2017-05-10 6 views
0

après la construction de DNN avec TFlearn, je veux calculer la précision du net.TFlearn Précision

Voici le code:

def create_model(self): 
    x = tf.placeholder(dtype= tf.float32, shape=[None, 6], name='x') 
    # Build neural network 
    input_layer = tflearn.input_data(shape=[None, 6]) 
    net = input_layer 
    net = tflearn.fully_connected(net, 128, activation='relu') 
    net = tflearn.fully_connected(net, 64, activation='relu') 
    net = tflearn.fully_connected(net, 16, activation='relu') 
    net = tflearn.fully_connected(net, 2, activation='sigmoid') 
    net = tflearn.regression(net, optimizer='adam', loss='mean_square', metric='R2') 

    w = tf.Variable(tf.truncated_normal([2, 2], stddev=0.1)) 
    b = tf.Variable(tf.constant(1.0, shape=[2])) 
    y = tf.nn.softmax(tf.matmul(net, w) + b, name='y') 

    model = tflearn.DNN(net, tensorboard_verbose=3) 
    return model 

ici est la partie de la formation:

train_data, train_goal, test_data, test_goal = self.normalize_data() 
     model = self.create_model() 

     # train model with train sets & evaluate on test sets 
     model.fit(train_data, train_goal, validation_set=0.2, n_epoch=10, show_metric=True, snapshot_epoch=True) 
     result = model.evaluate(test_data, test_goal) 

Comment puis-je calculer la précision? aussi, que dois-je changer pour faire en catégorique? Merci

Répondre

1

vous pouvez faire comme ceci:

def create_model(self): 
    x = tf.placeholder(dtype= tf.float32, shape=[None, 6], name='x') 
    # Build neural network 
    input_layer = tflearn.input_data(shape=[None, 6]) 
    net = input_layer 
    net = tflearn.fully_connected(net, 128, activation='relu') 
    net = tflearn.fully_connected(net, 64, activation='relu') 
    net = tflearn.fully_connected(net, 16, activation='relu') 
    net = tflearn.fully_connected(net, 2, activation='sigmoid') 
    net = tflearn.regression(net, optimizer='adam', loss='mean_square', metric='R2') 

    w = tf.Variable(tf.truncated_normal([2, 2], stddev=0.1)) 
    b = tf.Variable(tf.constant(1.0, shape=[2])) 
    y = tf.nn.softmax(tf.matmul(net, w) + b, name='y') 

    return y 

network = create_model() 
net = tflearn.regression(network, optimizer='RMSprop', metric='accuracy', loss='categorical_crossentropy') 

model = tflearn.DNN(net, show_metric=True, tensorboard_verbose=3)