TensorFlow 모델로 예측하기
나는 주어진 mnist 튜토리얼을 따랐고 모델을 훈련시키고 그 정확성을 평가할 수있었습니다. 그러나이 자습서에서는 모델에 대해 예측하는 방법을 보여주지 않습니다. 정확도에는 관심이 없습니다. 모델을 사용하여 새로운 예를 예측하고 출력에서 모든 결과 (레이블)를보고 각각에 할당 된 점수 (정렬 여부)를 확인하고 싶습니다.
" Deep MNIST for Experts "예제에서 다음 행을 참조하십시오.
이제 회귀 모델을 구현할 수 있습니다. 한 줄이면됩니다! 벡터화 된 입력 이미지 x에 가중치 행렬 W를 곱하고 편향 b를 더한 다음 각 클래스에 할당 된 소프트 맥스 확률을 계산합니다.
y = tf.nn.softmax(tf.matmul(x,W) + b)
노드 y를 당기면 원하는 것을 얻을 수 있습니다.
feed_dict = {x: [your_image]}
classification = tf.run(y, feed_dict)
print classification
이는 생성하는 거의 모든 모델에 적용됩니다. 손실을 계산하기 전에 마지막 단계 중 하나로 예측 확률을 계산했습니다.
@dga가 제안했듯이 이미 예측 된 모델을 통해 데이터의 새 인스턴스를 실행해야합니다.
다음은 그 예입니다.
첫 번째 튜토리얼을 진행하고 모델의 정확도를 계산했다고 가정합니다 (모델은 다음과 같습니다 y = tf.nn.softmax(tf.matmul(x, W) + b)
:). 이제 모델을 잡고 여기에 새 데이터 포인트를 적용합니다. 다음 코드에서는 벡터를 계산하여 최대 값의 위치를 얻습니다. 이미지를 표시하고 최대 위치를 인쇄합니다.
from matplotlib import pyplot as plt
from random import randint
num = randint(0, mnist.test.images.shape[0])
img = mnist.test.images[num]
classification = sess.run(tf.argmax(y, 1), feed_dict={x: [img]})
plt.imshow(img.reshape(28, 28), cmap=plt.cm.binary)
plt.show()
print 'NN predicted', classification[0]
질문은 특히 예측자를 정의하지만 적용하지 않는 Google MNIST 자습서 에 관한 것입니다. Jonathan Hui의 TensorFlow Estimator 블로그 게시물의 지침을 사용하여 다음은 Google 가이드에 정확히 일치하고 예측을 수행하는 코드입니다.
from matplotlib import pyplot as plt
images = mnist.test.images[0:10]
predict_input_fn = tf.estimator.inputs.numpy_input_fn(
x={"x":images},
num_epochs=1,
shuffle=False)
mnist_classifier.predict(input_fn=predict_input_fn)
for image,p in zip(images,mnist_classifier.predict(input_fn=predict_input_fn)):
print(np.argmax(p['probabilities']))
plt.imshow(image.reshape(28, 28), cmap=plt.cm.binary)
plt.show()
참고 URL : https://stackoverflow.com/questions/33711556/making-predictions-with-a-tensorflow-model
'IT박스' 카테고리의 다른 글
내부에서 약속을 거부하고 기능하는 방법 (0) | 2020.10.15 |
---|---|
ProGuard : 라이브러리 클래스의 중복 정의? (0) | 2020.10.15 |
Clojure 함수가 가변 개수의 매개 변수를 사용하도록 만드는 방법은 무엇입니까? (0) | 2020.10.14 |
@Override와 같은 주석은 Java에서 내부적으로 어떻게 작동합니까? (0) | 2020.10.14 |
Bash를 사용하여 JAR에서 MANIFEST.MF 파일을 읽는 방법 (0) | 2020.10.14 |