【エラー解決】AttributeError: 'Tensor' object has no attribute 'assign'

assign、つまり上手く代入できていない時に起きるエラー。

たとえば、変数ではなく定数にassignの処理をしてしまっている。

import tensorflow as tf


a = tf.constant(10, name="a")
b = tf.constant(20, name="b")
c = tf.constant(30, name="c")
v = tf.constant(0, name="v")  # 定数になっている

calc_op = a + b * c
assign_op = tf.assign(v, calc_op)  # 定数ではエラーが起きる

sess = tf.Session()

sess.run(assign_op)
print(sess.run(v))

コピペで入力し、変数のところを書き変え忘れた時にこのミスが発生することがある。

v = tf.constant(0, name="v")ではなく、
v = tf.Variable(0, name="v")と書く。

import tensorflow as tf


a = tf.constant(10, name="a")
b = tf.constant(20, name="b")
c = tf.constant(30, name="c")
v = tf.Variable(0, name="v")  # 変数

calc_op = a + b * c
assign_op = tf.assign(v, calc_op)

sess = tf.Session()

sess.run(assign_op)
print(sess.run(v))