Sök…


Introduktion

En modell som används i traditionell statistik är den linjära regressionsmodellen. I denna artikel är målet att följa stegvis implementering av denna typ av modeller. Vi kommer att representera en enkel linjär regressionsstruktur.

För vår studie kommer vi att analysera barnens ålder på x- axeln och barnens höjd på y- axeln. Vi kommer att försöka förutsäga barnens höjd, med hjälp av deras ålder, tillämpa enkel linjär regression. [I TF hitta bästa W och b]

parametrar

Parameter Beskrivning
train_X np-matris med x-dimension av information
train_Y np array med y-dimensionen av information

Anmärkningar

Jag använde TensorBoard sintaxis för att spåra beteendet hos vissa delar av modellen, kostnad, tåg och aktiveringselement.

with tf.name_scope("") as scope:

Import som används:

import numpy as np
import tensorflow as tf

Typ av applikation och språk som används:

Jag har använt en traditionell app-typ för konsolimplementering, utvecklad i Python, för att representera exemplet.


Version av TensorFlow används:

1.0.1


Konceptuellt akademiskt exempel / referens härifrån :

Enkel regressionsfunktionskodstruktur

Funktionsdefinition:

def run_training(train_X, train_Y):

Inmatningsvariabler:

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

Vikt och biasrepresentation

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)

Kosta:

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

Träning:

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

TensorFlow-session:

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

Obs: sammanslagna och författare är en del av TensorBoard-strategin för att spåra modellbeteendet.


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

Upprepa 1,5k gånger träningslingan:

    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)

Skriv utbildningskostnad:

    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'

Konkret förutsägelse baserad på den tränade modellen:

    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)

Huvudrutin

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

Obs: kom ihåg granskningsfunktionens beroenden. read_data , feature_normalize och run_training

Normaliseringsrutin

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)

Läs datarutin

def read_data():
    global m, n

    m = 50
    n = 1

    train_X = np.array(

Intern data för matrisen

    ).astype('float32')

    train_Y = np.array(

Intern data för matrisen

    ).astype('float32')

    return train_X, train_Y


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow