tensorflow
पायथन के साथ TensorFlow में सरल रैखिक प्रतिगमन संरचना
खोज…
परिचय
पारंपरिक आंकड़ों में व्यापक रूप से उपयोग किया जाने वाला मॉडल रैखिक प्रतिगमन मॉडल है। इस अनुच्छेद में, उद्देश्य इस प्रकार के मॉडल के चरण-दर-चरण कार्यान्वयन का पालन करना है। हम एक सरल रैखिक प्रतिगमन संरचना का प्रतिनिधित्व करने जा रहे हैं।
हमारे अध्ययन के लिए, हम x अक्ष पर बच्चों की आयु और y अक्ष पर बच्चों की ऊंचाई का विश्लेषण करेंगे। हम बच्चों की ऊंचाई का अनुमान लगाने की कोशिश करेंगे, उनकी उम्र का उपयोग करते हुए, सरल रैखिक प्रतिगमन लागू करेंगे। [TF में सबसे अच्छा डब्ल्यू और बी खोज रहे हैं]
पैरामीटर
पैरामीटर | विवरण |
---|---|
train_X | जानकारी के एक्स आयाम के साथ एनपी सरणी |
train_Y | जानकारी के y आयाम के साथ np सरणी |
टिप्पणियों
मैंने मॉडल, लागत, ट्रेन और सक्रियण तत्वों के कुछ हिस्सों के व्यवहार को ट्रैक करने के लिए TensorBoard sintaxis का उपयोग किया।
with tf.name_scope("") as scope:
उपयोग किए गए आयात:
import numpy as np
import tensorflow as tf
उपयोग किए गए एप्लिकेशन और भाषा का प्रकार:
मैंने उदाहरण का प्रतिनिधित्व करने के लिए पायथन में विकसित एक पारंपरिक कंसोल कार्यान्वयन एप्लिकेशन प्रकार का उपयोग किया है।
उपयोग किए गए 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)
नोट: विलय और लेखक मॉडल व्यवहार को ट्रैक करने के लिए टेन्सरबॉर्ड रणनीति का हिस्सा हैं।
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 and 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