首先雇寇,Tensorflow是什么氢拥?
大約300年前蚌铜,人類發(fā)明了蒸汽機和農(nóng)業(yè)設備,這些機器在物理層面上超越了人類的能力嫩海。 今天隨著計算成本越來越低冬殃,機器學習要做的,是讓機器從智力層面上叁怪,也要超越我們?nèi)祟惿笤帷ensorflow是Google發(fā)布機器學習系統(tǒng),于2015年11月9日宣布開源奕谭。
官方GitHub倉庫:
https://github.com/tensorflow/tensorflow
如果有一天涣觉,你也像我一樣對Tensorflow系統(tǒng)產(chǎn)生了好奇,作為一個完全不懂機器學習的人血柳,不需要翻墻官册,不需要裝linux系統(tǒng),不需要明白機器學習的原理难捌,在五分鐘之內(nèi)感受到機器學習的神奇膝宁,這就是這篇文章的目的。
第一步:打開下面的網(wǎng)址根吁,感謝codinggame這個平臺员淫。
https://www.codingame.com/training/machine-learning/deep-learning-tensorflow
第二步:點擊solve it,在右上對話框輸入以下代碼:
import random
import input_data
mnist = input_data.read_data_sets(raw_input(), raw_input(), raw_input())
import tensorflow as tf
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
result = sess.run(tf.argmax(y,1), feed_dict={x: mnist.validation.images})
print ' '.join(map(str, result))
第三步:點擊PLay ALL TESTCASES運行測試
到這里婴栽,你就用TensorFlow解決了一個最簡單的問題满粗,手寫數(shù)字識別。你可以看到左邊GUESS是機器認為這個數(shù)字是多少愚争,中間是手寫數(shù)字圖片,右邊是數(shù)字真實值挤聘。識別率可以達到90%轰枝。就好比編程入門有Hello World,機器學習入門有手寫數(shù)字識別(MNIST)组去。
下一步鞍陨,如果要理解第二步輸入的python語句是在干什么,就需要慢慢學習了从隆,參照官方文檔:
英文版:
中文版