2017-08-24 1 views
0
import tensorflow as tf 

# Model parameters 
A = tf.Variable([.3], dtype=tf.float32) 
W = tf.Variable([.3], dtype=tf.float32) 
b = tf.Variable([-.3], dtype=tf.float32) 
# Model input and output 
x = tf.placeholder(tf.float32) 
q_model = A * (x**2) + W * x + b 
y = tf.placeholder(tf.float32) 

# loss 
loss = tf.reduce_sum(tf.square(q_model - y)) # sum of the squares 
# optimizer 
optimizer = tf.train.GradientDescentOptimizer(0.01) 
train = optimizer.minimize(loss) 

# training data 
x_train = [0, 1, 2, 3, 4] 
y_train = [0, 1, 4, 9, 16] 
# training loop 
init = tf.global_variables_initializer() 
sess = tf.Session() 
sess.run(init) # reset values to wrong 
for i in range(1000): 
    sess.run(train, {x: x_train, y: y_train}) 

# evaluate training accuracy 
curr_A, curr_W, curr_b, curr_loss = sess.run([A, W, b, loss], {x: x_train, y: y_train}) 
print("A: %s W: %s b: %s loss: %s"%(curr_A, curr_W, curr_b, curr_loss)) 

Auf ihrer Website gibt tf Modellcode zur Durchführung der linearen Regression. Allerdings wollte ich spielen, um zu sehen, ob ich auch eine quadratische Regression erreichen könnte. Um dies zu tun, fügte ich eine tf.Variable A hinzu, legte sie in das Modell und modifizierte dann die Ausgabe, um mir zu sagen, was sie als Wert erhalten hat.Alle Tensorflow-Ausgänge sind nan

Hier sind die Ergebnisse:

A: [ nan] W: [ nan] b: [ nan] loss: nan 

Was denken y'all ist hier das Problem? Ist es zwischen dem Stuhl und der Tastatur?

Antwort

0

Wenn Sie die Werte A, W und b für jede Iteration drucken, werden Sie sehen, dass sie sich abwechseln (d. H. Positive und negative Werte folgen einander). Dies ist oft auf eine große Lernrate zurückzuführen. In Ihrem Beispiel sollten Sie dieses Verhalten zu beheben, indem er die Lernrate auf etwa Verringerung 0.001:

optimizer = tf.train.GradientDescentOptimizer(0.001) 

Mit dieser Lernrate erreichte ich einen abnehmenden Verlust, während A-1 gepflegt und W und b neigten dazu, Null, wie erwartet.

A: [ 0.7536] W: [ 0.42800003] b: [-0.26100001] loss: 7.86113 
A: [ 0.8581112] W: [ 0.45682004] b: [-0.252166] loss: 0.584708 
A: [ 0.88233441] W: [ 0.46283191] b: [-0.25026742] loss: 0.199126 
... 
A: [ 0.96852171] W: [ 0.1454313] b: [-0.11387932] loss: 0.0183883 
A: [ 0.96855479] W: [ 0.14527865] b: [-0.11376046] loss: 0.0183499 
A: [ 0.96858788] W: [ 0.14512616] b: [-0.11364172] loss: 0.0183113 
A: [ 0.9686209] W: [ 0.14497384] b: [-0.1135231] loss: 0.0182731 
Verwandte Themen