2017-08-13 3 views
2

J'essaie d'entraîner mon jeu de données d'images 20x20 en utilisant la bibliothèque d'apprentissage en profondeur MXNet, vous pouvez voir le code ci-dessous: la question est quand je l'exécute, bien qu'il montre aucune erreur ne retourne rien, je veux dire qu'il ne présente pas de traitement comme:Comment imprimer les étapes de traitement/rapport de model.fit MXNet Python

époque 0: ........ précision: .....

époque 1: .... .... précision: .....

alors, comment dois-je faire imprimer un tel format de traitement, ou où pourrait être le problème? Note: J'ai essayé toutes sortes d'API de rappel: http://mxnet.io/api/python/callback.html?fref=gc et aucune d'elles ne donne de réponse; le code fonctionne sans erreurs mais pas d'étapes de traitement affichées!

Merci à l'avance

X_train = [] 
training_flatten_rows_mxnet_csv=np.loadtxt("training_set_flatten_rows_mxnet.csv", delimiter=",") 
train_data = training_flatten_rows_mxnet_csv 
X_train = train_data.reshape((training_counter,1,20,20)) 
Y_train = np.loadtxt("training_labels.csv", delimiter=",") 

X_validate = [] 
validate_flatten_rows_mxnet_csv=np.loadtxt("validation_set_flatten_rows_mxnet.csv", delimiter=",") 
validate_data = validate_flatten_rows_mxnet_csv 
X_validate = validate_data.reshape((validate_counter,1,20,20)) 
Y_validate = np.loadtxt("validate_labels.csv", delimiter=",") 

train_iterator = mx.io.NDArrayIter(X_train, Y_train, batch_size=batch_size,shuffle=True)#,last_batch_handle='discard') 
validate_iterator = mx.io.NDArrayIter(X_validate, Y_validate, batch_size=batch_size,shuffle=True) 

data = mx.sym.var('data') 

conv1 = mx.sym.Convolution(data=data, kernel=(3,3), num_filter=6) 
relu1 = mx.sym.Activation(data=conv1, act_type="relu") 
pool1 = mx.sym.Pooling(data=relu1, pool_type="max", kernel=(2,2), stride=(2,2)) 

conv2 = mx.sym.Convolution(data=pool1, kernel=(6,6), num_filter=12) 
relu2 = mx.sym.Activation(data=conv2, act_type="relu") 
pool2 = mx.sym.Pooling(data=relu2, pool_type="max", kernel=(2,2), stride=(2,2)) 

flatten = mx.sym.flatten(data=pool2) 
fc1 = mx.symbol.FullyConnected(data=flatten, num_hidden=12) 

lenet = mx.sym.SoftmaxOutput(data=fc1, name='softmax') 

lenet_model = mx.mod.Module(symbol=lenet, context=mx.cpu()) 

lenet_model.fit(train_iterator, 
       eval_data=validate_iterator, 
       optimizer='sgd', 
       optimizer_params={'learning_rate':0.1}, 
       eval_metric='acc', 
       batch_end_callback =mx.callback.Speedometer(batch_size, 100), 
       num_epoch=5) 

Répondre

1

Résolus ajouter à votre code ces lignes:

import logging 
logging.getLogger().setLevel(logging.INFO) 

pour différents types de rapports de traitement, reportez-vous à "API Callback dans MXNet"