Also, ich habe dieses Stück Code:Warum werden die Variablen in diesem Programm nicht aktualisiert?
graph = tf.Graph()
with graph.as_default():
res = tf.Variable(
np.zeros((100, 100), dtype=np.float32)
)
mask = tf.placeholder(np.float32, (100, 100))
res = tf.add(res, mask)
init = tf.global_variables_initializer()
with tf.Session(graph=graph) as sess:
sess.run(init)
for i in range(100):
x1, x2, y1, y2 = np.random.randint(0, 100, 4)
x1, x2 = sorted((x1, x2))
y1, y2 = sorted((y1, y2))
c_mask = np.zeros((100, 100))
c_mask[x1:x2, y1:y2] = 255
new_pic = sess.run([res], feed_dict={mask:c_mask})[0]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(new_pic.astype('uint8'), cmap='gray')
fig.show()
Im Grunde ist es (zumindest soll) zieht 100 zufällig weiße Rechtecke auf einem schwarzen Feld. Aber was ich bekommen, ist dies:
Ich verstehe nicht. Es sieht so aus, als würde jede Iteration res
einfach auf eine schwarze Tafel zurückgesetzt (das Rechteck auf dem Bild ist das letzte, das nach den Koordinaten gezeichnet wurde). Behalte ich es nicht irgendwie, oder was mache ich falsch?
Das macht Sinn, ja, danke. Ich habe nicht erwartet, dass es einen Unterschied zwischen dem Neuschreiben und dem Modifizieren eines Tensors geben könnte, aber es scheint logisch. – Akiiino