더북(TheBook)

텐서플로에서 같은 작업을 하면 “EagerTensor object does not support item assignment”와 같은 에러가 발생합니다.

코드 3-4 텐서플로 텐서에 값을 할당하지 못함

x = tf.ones(shape=(2, 2))
x[0, 0] = 0. ----- 텐서에는 값을 할당할 수 없기 때문에 에러가 발생합니다.

모델을 훈련하려면 모델의 상태, 즉 일련의 텐서를 업데이트해야 합니다. 텐서에 값을 할당할 수 없다면 어떻게 이 작업을 할 수 있을까요? 이것이 변수가 있는 이유입니다. tf.Variable은 텐서플로에서 수정 가능한 상태를 관리하기 위한 클래스입니다. 2장 끝에서 훈련 루프를 구현할 때 잠깐 보았습니다.

변수를 만들려면 랜덤 텐서와 같이 초깃값을 제공해야 합니다.

코드 3-5 텐서플로 변수 만들기

>>> v = tf.Variable(initial_value=tf.random.normal(shape=(3, 1)))
>>> print(v)
array([[-0.75133973],
       [-0.4872893 ],
       [ 1.6626885 ]], dtype=float32)>
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.