Ich habe Theano verwendet, um eine einfache lineare Regression zu machen. Jetzt möchte ich den Datensatz und die Linie zeigen, deren Steigung jedes Mal optimiert wird. Ich habe einen dynamischen Echtzeit-Plot gemacht, aber das Problem ist, dass es die vorherigen Plots behält. Ich möchte den Oroginal-Datensatz behalten und die neue Zeile jedes Mal neu zeichnen. Hier ist mein Code:Wie zeichne Echtzeit in Python, ohne vorherige Plots zu halten?
import theano
from theano import tensor as T
import numpy as np
import matplotlib.pyplot as plt
trX = np.linspace(-1, 1, 10)
trY = 2 * trX + np.random.randn(*trX.shape) * 0.33
# PLOT THE ORIGINAL DATASET
plt.figure()
plt.ion()
plt.scatter(trX,trY)
X = T.scalar()
Y = T.scalar()
def model(X, w):
return X * w
w = theano.shared(np.asarray(0., dtype=theano.config.floatX))
y = model(X, w)
cost = T.mean(T.sqr(y - Y))
gradient = T.grad(cost=cost, wrt=w)
updates = [[w, w - gradient * 0.01]]
train = theano.function(inputs=[X, Y], outputs=cost, updates=updates, allow_input_downcast=True)
for i in range(10):
for x, y in zip(trX, trY):
train(x, y)
Weight = w.get_value()
ablineValues = []
for i in trX:
ablineValues.append(Weight*i)
# PLOT THE NEW OPTIMISED LINE
plt.plot(trX,ablineValues,'r')
plt.pause(0.0000001)
plt.show()
Wissen Sie, wie ich das tun kann? Ich habe andere verwandte Probleme gelesen, aber immer noch kann ich es nicht schaffen. Bitte leiten Sie mich auf eine gute Seite, wenn Sie denken, dass sie mir helfen kann.
http://stackoverflow.com/questions/8213522/matplotlib-clearing-a-plot-when-to-use-cla-clf- oder-nah? –