Ich versuche, einen Validierungsmonitor in skflow zu verwenden, indem ich meinen Validierungssatz als numpy-Array übergebe.Wie kann man Daten in einen Tensorflow-Lernvalidierungsmonitor eingeben?
Hier finden Sie einige einfache Code, um das Problem (I installiert tensorflow aus den bereitgestellten Binärdateien für Ubuntu/Linux 64-bit, GPU aktiviert, Python 2.7) zu reproduzieren:
import numpy as np
from sklearn.cross_validation import train_test_split
from tensorflow.contrib import learn
import tensorflow as tf
import logging
logging.getLogger().setLevel(logging.INFO)
#Some fake data
N=200
X=np.array(range(N),dtype=np.float32)/(N/10)
X=X[:,np.newaxis]
Y=np.sin(X.squeeze())+np.random.normal(0, 0.5, N)
X_train, X_test, Y_train, Y_test = train_test_split(X, Y,
train_size=0.8,
test_size=0.2)
val_monitor = learn.monitors.ValidationMonitor(X_test, Y_test,early_stopping_rounds=200)
reg=learn.DNNRegressor(hidden_units=[10,10],activation_fn=tf.tanh,model_dir="tmp/")
reg.fit(X_train,Y_train,steps=5000,monitors=[val_monitor])
print "train error:", reg.evaluate(X_train, Y_train)
print "test error:", reg.evaluate(X_test, Y_test)
der Code ausgeführt wird, sondern nur die erste Der Validierungsschritt wird ordnungsgemäß durchgeführt. Die Validierung liefert dann immer den gleichen Wert, auch wenn das Training tatsächlich gut läuft. Dies kann überprüft werden, indem am Ende des Tests eine Auswertung durchgeführt wird. Die folgende Nachricht wird auch für jeden Überprüfungsschritt angezeigt.
INFO:tensorflow:Input iterator is exhausted.
Jede Hilfe ist willkommen! Danke, David
Wie sehen Ihre Daten aus? Sie müssen "Every_n_steps", "steps" und "batch_size" mehr Aufmerksamkeit schenken, wenn Sie es verwenden. –
Ich habe jetzt meine Frage bearbeitet, um ein Beispiel zu geben. Ich kann ValidationMonitor nicht mit 'batch_size' und' steps' als Schlüsselwortargumenten aufrufen. Ich habe Tensorflow von den mitgelieferten Binaries für Ubuntu/Linux 64-Bit, GPU aktiviert, Python 2.7 installiert. Vielleicht wurde der Code für die Monitore kürzlich geändert? – dbikard
Ja, es hat sich ziemlich verändert. Bitte versuchen Sie die neueste Version. –