Попытка обновить сюжет с помощью matplotlib для простого проекта тензорного потока - PullRequest
0 голосов
/ 19 декабря 2018

Я работаю над проектом, который выполняет кубическую регрессию с помощью машинного обучения.Я подумал, что было бы интересно показать эволюцию линии, поэтому я решил выяснить, как показывать линию, скажем, каждые 100-й шаг или около того.

Изначально я использовал многопоточность, чтобы многократнозакройте участок, на котором он затем переселяется каждые 100 шагов, однако это явно не идеально.Я был бы очень признателен за некоторые рекомендации относительно того, как я могу обновлять сюжет каждый сотый шаг.

Ниже мой код:

import tensorflow as tf
import matplotlib.pyplot as plt
import threading
import time
import random
tf.reset_default_graph()
input_data = tf.placeholder(dtype=tf.float32, shape=None)
output_data = tf.placeholder(dtype=tf.float32, shape=None)
avalue = tf.Variable(random.randint(-1000,1000), dtype=tf.float32)
bvalue = tf.Variable(random.randint(-1000,1000), dtype=tf.float32)
cvalue = tf.Variable(random.randint(-1000,1000), dtype=tf.float32)
dvalue = tf.Variable(random.randint(-1000,1000), dtype=tf.float32)
model_operation = avalue *(input_data * input_data * input_data) + bvalue * (input_data * input_data) + (cvalue * input_data) + dvalue
error = model_operation - output_data
squared_error = tf.square(error)
loss = tf.reduce_mean(squared_error)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.00005)
train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
x_values = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
y_values = [-268, -126, -46, -10, 0, 2, 14, 54, 140, 290, 522]
with tf.Session() as sess:
    sess.run(init)
    for i in range(10000):
        sess.run(train, feed_dict={input_data: x_values, output_data: y_values})
        if i % 100 == 0:
            print(*sess.run([avalue, bvalue, cvalue, dvalue]))
            plt.plot(x_values, sess.run(model_operation, feed_dict={input_data: x_values}))
            plt.plot(x_values, y_values, 'ro', 'Training Data')
            ## trying to make the function here
    print('loss value = ' + str(sess.run(loss, feed_dict={input_data: x_values, output_data: y_values})))
    plt.plot(x_values, y_values, 'ro', 'Training Data')
    plt.plot(x_values, sess.run(model_operation, feed_dict={input_data: x_values}))
    plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...