tensorflow 학습 노트 의 간단 한 신경 망 훈련 과 테스트
2750 단어 tensorflow신경 망
tf 를 처음 공 부 했 을 때 우 리 는 간단 한 곳 에서 시작 했다.권 적 신경 망(CNN)은 간단 한 신경 망(NN)에서 발달 해 왔 기 때문에 우리 의 첫 번 째 예 는 신경 망 부터 다.
신경 망 은 볼 륨 기능 이 없고 간단 한 3 층 만 있다.입력 층,숨겨 진 층 과 출력 층 이다.
데 이 터 는 입력 층 에서 입력 하고 숨겨 진 층 에서 가중 변환 을 하 며 마지막 으로 출력 층 에서 출력 합 니 다.출력 할 때,우 리 는 softmax 를 사용 하여 회귀 할 수 있 으 며,출력 은 각 종류의 확률 값 에 속한다.극 객 대학의 그림 을 빌려 다음 과 같이 표시 한다.
그 중에서 x1,x2,x3 는 데 이 터 를 입력 하고 연산 을 거 친 후에 세 개의 데 이 터 를 얻어 특정한 유형의 확률 치 y1,y2,y3 에 속 하 는 것 을 얻 었 다.간단 한 공식 으로 다음 과 같이 표시 한다.
훈련 과정 에서 우 리 는 진실 한 결 과 를 예측 한 결과 에 비해(교차 엔트로피 비교 법)잔 차 를 얻 을 수 있다.공식 은 다음 과 같다.
y 는 우리 가 예측 한 확률 치 이 고 y 는 실제 값 이다.이 잔 차 는 작 을 수록 좋다.우 리 는 경사도 하강 법 을 사용 하여 W 와 b 의 수 치 를 끊임없이 바 꾸 어 잔 차 를 점점 작 게 만 들 고 마지막 에 최소 치 로 수렴 할 수 있다.이렇게 훈련 을 완성 하면 우 리 는 모델(W 와 b 의 최적화 치)을 얻 을 수 있다.
전체 코드 는 다음 과 같 습 니 다:
import tensorflow as tf
import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x = tf.placeholder(tf.float32, [None, 784])
y_actual = tf.placeholder(tf.float32, shape=[None, 10])
W = tf.Variable(tf.zeros([784,10])) # W
b = tf.Variable(tf.zeros([10])) # b
y_predict = tf.nn.softmax(tf.matmul(x,W) + b) # softmax ,
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_actual*tf.log(y_predict),reduction_indies=1)) #
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) #
correct_prediction = tf.equal(tf.argmax(y_predict,1), tf.argmax(y_actual,1)) # ,
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) #
init = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init)
for i in range(1000): # , 1000
batch_xs, batch_ys = mnist.train.next_batch(100) # , 100
sess.run(train_step, feed_dict={x: batch_xs, y_actual: batch_ys}) #
if(i%100==0): # 100 ,
print "accuracy:",sess.run(accuracy, feed_dict={x: mnist.test.images, y_actual: mnist.test.labels})
100 번 씩 훈련 하고 테스트 하 며 훈련 횟수 가 늘 어 나 면서 테스트 정밀도 도 높 아 지고 있다.훈련 이 끝 난 뒤 1W 행 데이터 테스트 의 평균 정밀 도 는 91%정도 로 그리 높 지 않 아 CNN 보다 높 지 않 을 것 이 분명 하 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Mediapipe를 사용한 맞춤형 인간 포즈 분류OpenCV의 도움으로 Mediapipe를 사용하여 사용자 지정 포즈 분류 만들기 Yoga Pose Dataset을 사용하여 사용자 정의 인간 포즈 분류를 생성하겠습니다. 1. 리포지토리 복제: 데이터세트 다운로드:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.