728x90
MNIST For ML Beginners (2) - Implementing the Regression
1 | import tensorflow as tf | cs |
아래와 같이 변수를 생성하자.
1 | x = tf.placeholder(tf.float32, [None, 784]) | cs |
여기서 x
는 특정 값이 아니다. x
는 placeholder
라는 것으로 텐서플로우로 하여금 연산을 하도록 요청할 때 우리가 입력하게 되는 값이다. MNIST 이미지의 어떤 수라도 입력할 수 있도록 우리는 이것을 [None, 784] 형태를 가진
부동소수점수의 2-D 텐서로 표현할 것이다(여기서 None
이 의미하는 것은 어떤 값이라도 될 수 있다는 것이다).
그리고 가중치와 편향 역시 필요하다. 이 요소들을 추가적인 인풋으로 다룰 수 있지만, 텐서플로우는 이 보다 더 나은 방법을 가지고 있다. 바로 Variable
이 그것으로, Variable
는 일종의 수정가능한 텐서다. 연산에 사용이 가능하고 수정도 가능하다.
Variable 초기값인
tf.Variable 을 통해서
Variable 을 생성할 수 있다. 여기서는 우리는
W
와 b
를 0 으로 꽉찬 텐서로 초기화했다.
W
는 [784, 10] 의 구조를 가졌음을 알 수 있다. 784 차원의 이미지 벡터에 가중치를 곱해서10-차원 벡터 결과를 도출해내야하기 때문이다. 그리고 b
는 [10] 의 구조를 가졌고, 아웃풋에 그 값을 더할 수 있다.1 2 | W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) | cs |
아래의 라인을 추가해서 모델을 만들어보자.
1 | y = tf.nn.softmax(tf.matmul(x, W) + b ) | cs |
tf.matmul(x, W)
을 통해 먼저 x
와 W
를 곱했다. 그리고 b
를 더한 후 tf.nn.softmax
를 적용했다.728x90