tensorflow
Python을 사용한 TensorFlow의 간단한 선형 회귀 구조
수색…
소개
전통적인 통계에서 널리 사용되는 모델은 선형 회귀 모델입니다. 이 기사의 목적은이 유형의 모델을 단계별로 구현하는 것입니다. 우리는 간단한 선형 회귀 구조를 나타낼 것입니다.
본 연구에서는 x 축에서의 아동의 나이와 y 축에서의 아동의 신장을 분석 할 것입니다. 우리는 나이를 사용하여 단순한 선형 회귀를 적용하여 아이들의 신장을 예측하려고 노력할 것입니다. [TF에서 가장 좋은 W와 B를 찾는]
매개 변수
매개 변수 | 기술 |
---|---|
train_X | 정보의 x 차원을 갖는 np 배열 |
train_Y | y 차원의 정보를 가진 np 배열 |
비고
TensorBoard sintaxis를 사용하여 모델, 비용, 열차 및 활성화 요소의 일부 동작을 추적했습니다.
with tf.name_scope("") as scope:
사용 된 수입품 :
import numpy as np
import tensorflow as tf
사용 된 응용 프로그램 및 언어 유형 :
필자는 예제를 표현하기 위해 Python으로 개발 된 전통적인 콘솔 구현 앱 유형을 사용했습니다.
사용 된 TensorFlow의 버전 :
1.0.1
여기 에서 추출한 개념적 학문적 인 예 / 참고 문헌 :
단순 회귀 함수 코드 구조
함수 정의 :
def run_training(train_X, train_Y):
입력 변수 :
X = tf.placeholder(tf.float32, [m, n])
Y = tf.placeholder(tf.float32, [m, 1])
중량 및 바이어스 표시
W = tf.Variable(tf.zeros([n, 1], dtype=np.float32), name="weight")
b = tf.Variable(tf.zeros([1], dtype=np.float32), name="bias")
선형 모델 :
with tf.name_scope("linear_Wx_b") as scope:
activation = tf.add(tf.matmul(X, W), b)
비용:
with tf.name_scope("cost") as scope:
cost = tf.reduce_sum(tf.square(activation - Y)) / (2 * m)
tf.summary.scalar("cost", cost)
훈련:
with tf.name_scope("train") as scope:
optimizer = tf.train.GradientDescentOptimizer(0.07).minimize(cost)
TensorFlow 세션 :
with tf.Session() as sess:
merged = tf.summary.merge_all()
writer = tf.summary.FileWriter(log_file, sess.graph)
참고 : 병합 및 기록기는 모델 동작을 추적하는 TensorBoard 전략의 일부입니다.
init = tf.global_variables_initializer()
sess.run(init)
트레이닝 루프를 1.5k 배 반복 :
for step in range(1500):
result, _ = sess.run([merged, optimizer], feed_dict={X: np.asarray(train_X), Y: np.asarray(train_Y)})
writer.add_summary(result, step)
인쇄 교육 비용 :
training_cost = sess.run(cost, feed_dict={X: np.asarray(train_X), Y: np.asarray(train_Y)})
print "Training Cost: ", training_cost, "W=", sess.run(W), "b=", sess.run(b), '\n'
훈련 된 모델을 기반으로 한 구체적인 예측 :
print "Prediction for 3.5 years"
predict_X = np.array([3.5], dtype=np.float32).reshape([1, 1])
predict_X = (predict_X - mean) / std
predict_Y = tf.add(tf.matmul(predict_X, W), b)
print "Child height(Y) =", sess.run(predict_Y)
메인 루틴
def main():
train_X, train_Y = read_data()
train_X = feature_normalize(train_X)
run_training(train_X, train_Y)
참고 : 검토 기능의 종속성을 기억하십시오. read_data , feature_normalize 및 run_training
정규화 루틴
def feature_normalize(train_X):
global mean, std
mean = np.mean(train_X, axis=0)
std = np.std(train_X, axis=0)
return np.nan_to_num((train_X - mean) / std)
데이터 읽기 루틴
def read_data():
global m, n
m = 50
n = 1
train_X = np.array(
배열의 내부 데이터
).astype('float32')
train_Y = np.array(
배열의 내부 데이터
).astype('float32')
return train_X, train_Y
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow