首先,Tensorflow是什么?

大約300年前,人類發(fā)明了蒸汽機(jī)和農(nóng)業(yè)設(shè)備,這些機(jī)器在物理層面上超越了人類的能力。 今天隨著計(jì)算成本越來(lái)越低,機(jī)器學(xué)習(xí)要做的,是讓機(jī)器從智力層面上,也要超越我們?nèi)祟悺ensorflow是Google發(fā)布機(jī)器學(xué)習(xí)系統(tǒng),于2015年11月9日宣布開(kāi)源。
官方GitHub倉(cāng)庫(kù):
https://github.com/tensorflow/tensorflow
如果有一天,你也像我一樣對(duì)Tensorflow系統(tǒng)產(chǎn)生了好奇,作為一個(gè)完全不懂機(jī)器學(xué)習(xí)的人,不需要翻墻,不需要裝linux系統(tǒng),不需要明白機(jī)器學(xué)習(xí)的原理,在五分鐘之內(nèi)感受到機(jī)器學(xué)習(xí)的神奇,這就是這篇文章的目的。
第一步:打開(kāi)下面的網(wǎng)址,感謝codinggame這個(gè)平臺(tái)。
https://www.codingame.com/training/machine-learning/deep-learning-tensorflow
第二步:點(diǎn)擊solve it,在右上對(duì)話框輸入以下代碼:
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))

第三步:點(diǎn)擊PLay ALL TESTCASES運(yùn)行測(cè)試

到這里,你就用TensorFlow解決了一個(gè)最簡(jiǎn)單的問(wèn)題,手寫(xiě)數(shù)字識(shí)別。你可以看到左邊GUESS是機(jī)器認(rèn)為這個(gè)數(shù)字是多少,中間是手寫(xiě)數(shù)字圖片,右邊是數(shù)字真實(shí)值。識(shí)別率可以達(dá)到90%。就好比編程入門(mén)有Hello World,機(jī)器學(xué)習(xí)入門(mén)有手寫(xiě)數(shù)字識(shí)別(MNIST)。
下一步,如果要理解第二步輸入的python語(yǔ)句是在干什么,就需要慢慢學(xué)習(xí)了,參照官方文檔:
英文版:
中文版