Sotto è il mio codice ...
import tensorflow as tf
import numpy as np
if __name__ == '__main__':
# Data sets
IRIS_TRAINING = "iris_training.csv"
IRIS_TEST = "iris_test.csv"
# Load datasets.
training_set = tf.contrib.learn.datasets.base.load_csv(filename=IRIS_TRAINING, target_dtype=np.int)
test_set = tf.contrib.learn.datasets.base.load_csv(filename=IRIS_TEST, target_dtype=np.int)
x_train, x_test, y_train, y_test = training_set.data, test_set.data, training_set.target, test_set.target
# Build 3 layer DNN with 10, 20, 10 units respectively.
classifier = tf.contrib.learn.DNNClassifier(hidden_units=[10, 20, 10], n_classes=3, model_dir="path_to_my_local_dir")
# print classifier.model_dir
# Fit model.
print "start fitting model..."
classifier.fit(x=x_train, y=y_train, steps=200)
print "finished fitting model!!!"
# Evaluate accuracy.
accuracy_score = classifier.evaluate(x=x_test, y=y_test)["accuracy"]
print('Accuracy: {0:f}'.format(accuracy_score))
#Classify two new flower samples.
new_samples = np.array(
[[6.4, 3.2, 4.5, 1.5], [5.8, 3.1, 5.0, 1.7]], dtype=float)
y = classifier.predict_proba(new_samples)
print ('Predictions: {}'.format(str(y)))
#---------------------------------------------------------------------------------
#model_dir below has to be the same as the previously specified path!
new_classifier = tf.contrib.learn.DNNClassifier(hidden_units=[10, 20, 10], n_classes=3, model_dir="path_to_my_local_dir")
accuracy_score = new_classifier.evaluate(x=x_test, y=y_test)["accuracy"]
print('Accuracy: {0:f}'.format(accuracy_score))
new_samples = np.array(
[[6.4, 3.2, 4.5, 1.5], [5.8, 3.1, 5.0, 1.7]], dtype=float)
y = classifier.predict_proba(new_samples)
print ('Predictions: {}'.format(str(y)))
Mi dispiace di essere in ritardo per rispondere al tuo primo commento ... E grazie mille per l'aiuto !!! Ci proverò oggi! Ho provato a usare solo model_dir nell'inizializzazione, ma ho chiamato la funzione di ripristino per caricare il classificatore addestrato. Si è lamentato della mancanza di model.def, ma il tuo suggerimento non sta chiamando la funzione di ripristino e invece è sufficiente inizializzare DNNClassifier con il suo costruttore impostando il percorso su model_dir corretto? – Kazuki
Sì, esatto, si usa il parametro model_dir sul costruttore di DNNclassifier e questo salva il modello, per ripristinare basta creare un altro DNNClassifier con lo stesso modello_dir e leggerà i file generati –
La soluzione ha funzionato? Sto ottenendo il seguente errore: ValueError: si dovrebbero definire linear_feature_columns o dnn_feature_columns. – Kazuki