Wie voraussagen, - Werte, die mit einem ausgebildeten Tensorflow Modell

Habe ich trainiert, meine NN in Tensorflow gespeichert und das Modell wie folgt:

def neural_net(x):
   layer_1 = tf.layers.dense(inputs=x, units=195, activation=tf.nn.sigmoid)
   out_layer = tf.layers.dense(inputs=layer_1, units=6)
   return out_layer

train_x = pd.read_csv("data_x.csv", sep=" ")
train_y = pd.read_csv("data_y.csv", sep=" ")
train_x = train_x / 6 - 0.5

train_size = 0.9
train_cnt = int(floor(train_x.shape[0] * train_size))
x_train = train_x.iloc[0:train_cnt].values
y_train = train_y.iloc[0:train_cnt].values
x_test = train_x.iloc[train_cnt:].values
y_test = train_y.iloc[train_cnt:].values

x = tf.placeholder("float", [None, 386])
y = tf.placeholder("float", [None, 6])

nn_output = neural_net(x)

cost = tf.reduce_mean(tf.losses.mean_squared_error(labels=y, predictions=nn_output))
optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)

training_epochs = 5000
display_step = 1000
batch_size = 30

keep_prob = tf.placeholder("float")

saver = tf.train.Saver()
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for epoch in range(training_epochs):
        total_batch = int(len(x_train) / batch_size)
        x_batches = np.array_split(x_train, total_batch)
        y_batches = np.array_split(y_train, total_batch)
        for i in range(total_batch):
            batch_x, batch_y = x_batches[i], y_batches[i]
            _, c = sess.run([optimizer, cost], 
                            feed_dict={
                                x: batch_x, 
                                y: batch_y, 
                                keep_prob: 0.8
                            })
    saver.save(sess, 'trained_model', global_step=1000)

Nun möchte ich mit Hilfe des trainierten Modells in einer anderen Datei. Natürlich gibt es auch viele viele Beispiele für die Wiederherstellung und speichern des Modells, ich ging durch viele von Ihnen. Noch konnte ich nicht alle von Ihnen arbeiten, gibt es immer irgendeine Art von Fehler. Dies ist also meine Datei wiederherstellen, können Sie mir bitte helfen, um es wiederherstellen der gespeicherten Modells?

saver = tf.train.import_meta_graph('trained_model-1000.meta')
y_pred = []
with tf.Session() as sess:
    saver.restore(sess, tf.train.latest_checkpoint('./'))
    sess.run([y_pred], feed_dict={x: input_values})

E. g. dieser Versuch gab mir die Fehlermeldung "Die Sitzung graph leer ist. Add-Operationen, um das Diagramm vor dem Aufruf von run()." Also welche Funktion sollte ich hinzufügen, um die Grafik und wie? Ich weiß nicht, was, die operation sollte in meinem Modell... ich verstehe nicht, das ganze Konzept des speichern/wiederherstellen in Tensorflow. Oder sollte ich die Wiederherstellung komplett anders??? Vielen Dank im Voraus!

Haben Sie versucht, indem Sie saver = tf.train.import_meta_graph('trained_model-1000.meta') innerhalb der with tf.Session() as sess: ? Vielleicht mit tf.reset_default_graph() vor, nur um sicher zu sein...
Hi, ja, es ist gelöst, dieses Fehlers, danke. Aber das Modell ist immer noch nicht richtig wiederhergestellt. Ich aktualisierte den code, so gibt es mehr Kontext.
Oder vielleicht ist es wiederhergestellt, aber ich nur don T wissen, wie Sie es verwenden, um neue Vorhersagen.
Gibt es irgendwelche updates auf, wie Sie damit umgehen?
Sie haben zu definieren neural_net(x) die gleiche Weise wie in der Trainings-Datei, dann die Wiederherstellung Ihrer Daten die Art und Weise wie in meiner Frage oder in den CAta.RAy ' s Antwort weiter unten. Dann vorherzusagen, wie in Alli Abbasi Antwort.

InformationsquelleAutor T.Poe | 2017-10-12

Schreibe einen Kommentar