Suche…


Einführung

Ein in der traditionellen Statistik weit verbreitetes Modell ist das lineare Regressionsmodell. In diesem Artikel besteht das Ziel darin, die schrittweise Implementierung dieser Art von Modellen zu verfolgen. Wir werden eine einfache lineare Regressionsstruktur darstellen.

Für unsere Studie analysieren wir das Alter der Kinder auf der X- Achse und die Höhe der Kinder auf der Y- Achse. Wir werden versuchen, die Größe der Kinder anhand ihres Alters vorherzusagen und eine einfache lineare Regression anzuwenden. [In TF finden Sie das beste W und b]

Parameter

Parameter Beschreibung
train_X np Array mit x-Dimension der Informationen
train_Y np Array mit y-Dimension der Informationen

Bemerkungen

Ich habe TensorBoard sintaxis verwendet, um das Verhalten einiger Teile des Modells, Kosten, Zug und Aktivierungselemente zu verfolgen.

with tf.name_scope("") as scope:

Verwendete Importe:

import numpy as np
import tensorflow as tf

Art der Anwendung und Sprache:

Ich habe einen traditionellen, in Python entwickelten App-Typ für die Konsolenimplementierung verwendet, um das Beispiel darzustellen.


Version von TensorFlow verwendet:

1.0.1


Konzeptionelles akademisches Beispiel / Referenz hieraus extrahiert:

Einfache Code-Struktur für die Regressionsfunktion

Funktionsdefinition:

def run_training(train_X, train_Y):

Eingangsvariablen:

X = tf.placeholder(tf.float32, [m, n])
Y = tf.placeholder(tf.float32, [m, 1])

Darstellung von Gewicht und Vorsatz

W = tf.Variable(tf.zeros([n, 1], dtype=np.float32), name="weight")
b = tf.Variable(tf.zeros([1], dtype=np.float32), name="bias")

Lineal modell:

with tf.name_scope("linear_Wx_b") as scope:
    activation = tf.add(tf.matmul(X, W), b)

Kosten:

with tf.name_scope("cost") as scope:
    cost = tf.reduce_sum(tf.square(activation - Y)) / (2 * m)
    tf.summary.scalar("cost", cost)

Ausbildung:

with tf.name_scope("train") as scope:
    optimizer = tf.train.GradientDescentOptimizer(0.07).minimize(cost)

TensorFlow-Sitzung:

with tf.Session() as sess:
    merged = tf.summary.merge_all()
    writer = tf.summary.FileWriter(log_file, sess.graph)

Hinweis: Zusammengeführtes und Schreibprogramm sind Teil der TensorBoard-Strategie, um das Verhalten des Modells zu verfolgen.


    init = tf.global_variables_initializer()
    sess.run(init)

Wiederholung des 1,5k-fachen der Trainingsschleife:

    for step in range(1500):
       result, _ = sess.run([merged, optimizer], feed_dict={X: np.asarray(train_X), Y: np.asarray(train_Y)})
       writer.add_summary(result, step)

Schulungskosten drucken:

    training_cost = sess.run(cost, feed_dict={X: np.asarray(train_X), Y: np.asarray(train_Y)})
    print "Training Cost: ", training_cost, "W=", sess.run(W), "b=", sess.run(b), '\n'

Konkrete Vorhersage basierend auf dem trainierten Modell:

    print "Prediction for 3.5 years"
    predict_X = np.array([3.5], dtype=np.float32).reshape([1, 1])

    predict_X = (predict_X - mean) / std
    predict_Y = tf.add(tf.matmul(predict_X, W), b)
    print "Child height(Y) =", sess.run(predict_Y)

Hauptroutine

def main():
    train_X, train_Y = read_data()
    train_X = feature_normalize(train_X)
    run_training(train_X, train_Y)

Hinweis: Denken Sie an die Abhängigkeiten der Überprüfungsfunktionen. read_data , feature_normalize und run_training

Normalisierungsroutine

def feature_normalize(train_X):
    global mean, std
    mean = np.mean(train_X, axis=0)
    std = np.std(train_X, axis=0)

    return np.nan_to_num((train_X - mean) / std)

Datenroutine lesen

def read_data():
    global m, n

    m = 50
    n = 1

    train_X = np.array(

Interne Daten für das Array

    ).astype('float32')

    train_Y = np.array(

Interne Daten für das Array

    ).astype('float32')

    return train_X, train_Y


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow