首先,Tensorflow是什么?
大约300年前,人类发明了蒸汽机和农业设备,这些机器在物理层面上超越了人类的能力。 今天随着计算成本越来越低,机器学习要做的,是让机器从智力层面上,也要超越我们人类。Tensorflow是Google发布机器学习系统,于2015年11月9日宣布开源。
官方GitHub仓库:
https://github.com/tensorflow/tensorflow
如果有一天,你也像我一样对Tensorflow系统产生了好奇,作为一个完全不懂机器学习的人,不需要翻墙,不需要装linux系统,不需要明白机器学习的原理,在五分钟之内感受到机器学习的神奇,这就是这篇文章的目的。
第一步:打开下面的网址,感谢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解决了一个最简单的问题,手写数字识别。你可以看到左边GUESS是机器认为这个数字是多少,中间是手写数字图片,右边是数字真实值。识别率可以达到90%。就好比编程入门有Hello World,机器学习入门有手写数字识别(MNIST)。
下一步,如果要理解第二步输入的python语句是在干什么,就需要慢慢学习了,参照官方文档:
英文版:
中文版