美文网首页深度学习我爱编程
Tensorflow安装和入门简介

Tensorflow安装和入门简介

作者: chenweicai | 来源:发表于2016-10-18 14:23 被阅读723次

    2016-10-08 陈伟才 人工智能学堂

    一、Tensorflow简介

    Tensorflow ( https://www.tensorflow.org/ ) 是google大脑团队打造的一款开源软件库,用于人工智能、机器学习以及深度学习等领域。Tensorflow主要包括Tersor和Flow两个主要的概念,tensor表示多维数组multi-dimensional arrays,flow表示数据流图data flow graph。Tensorflow (https://github.com/tensorflow/tensorflow )从star数、fork数来看,可以说是目前最火热的机器学习开源框架,值得我们深入学习。

    二、Ubuntu/Linux和MAC OS X简单安装过程

    Tensorflow可以通过二进制或者源码来进行安装。本文通过tensorflow的二进制包进行Ubuntu和MAC平台下安装演示。

    1. Ubuntu安装

    以Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-86-generic x86_64)为例,安装过程如下蓝色字体:

    #apt-get update//获取ubuntu最新的软件包

    #sudo apt-get install python-pip python-dev python-virtualenv

    #virtualenv --system-site-packages ~/tensorflow

    #source ~/tensorflow/bin/activate

    #pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp27-none-linux_x86_64.whl//我们安装CPU版本为例,如果需要支持GPU Card,则安装对应的tensorflow GPU版本

    #deactivate

    至此tensorflow已经安装完毕,我们检测一下是否安装成功了,

    #~/tensorflow/bin/python2.7

    Python 2.7.6 (default, Jun 22 2015, 17:58:13)

    [GCC 4.8.2] on linux2

    Type "help", "copyright", "credits" or "license" for more information.

    >>>import tensorflow as tf

    >>>hello = tf.constant('Hello, TensorFlow!')

    >>>sess = tf.Session()

    >>>print sess.run(hello)

    Hello, TensorFlow!

    >>>

    2. MAC OS X安装

    MAC OS X需要OSX 10.11 EL Capitan版本才能支持Tensorflow,所以安装Tensorflow之前,请自行升级MAX OS系统。升级完MAX OS X系统成功后,MAX默认是开启rootless,所以还需要关系rootless。

    MAC只支持CPU版本,目前还不支持GPU Card,MAC安装过程同样也很简单,如下:

    #sudo easy_install pip

    #sudo pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl

    三、简单入门示例MNIST

    TensorFlow是一个非常强大的用来做大规模数值计算的库。其所擅长的任务之一就是实现以及训练深度神经网络。Tensorflow官网入门示例MNIST,https://www.tensorflow.org/versions/r0.11/tutorials/mnist/beginners/index.html#softmax-regressions,是采用softmax regression进行机器学习的入门例子。

    MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图:

    Softmax回归就是推广版本的逻辑回归。 只不过逻辑回归是个2分类问题,而Softmax是多分类问题,仅此而已。有关softmax regression算法,请参考http://deeplearning.stanford.edu/wiki/index.php/Softmax_Regression,本文不重点描述和推导。

    程序代码github地址是https://github.com/chenweicai/tensorflow-study/blob/master/tf_softmax_mnist.py,内容如下:

    # Softmax Regression using tensorflow.

    import tensorflow as tf

    # Download the mnist data.

    from tensorflow.examples.tutorials.mnist import input_data

    mnist = input_data.read_data_sets("/tmp/MNIST_data", one_hot=True)

    # Input placeholder, 2-D tensor of floating-point nunbers.

    # here None means that a dimension can be of any length.

    x = tf.placeholder(tf.float32, [None, 784])

    # Initialize both W and b as tensors full of zeros.

    # Since we are going to learn W and b, it doesn't

    # matter very much what they initial are.

    W = tf.Variable(tf.zeros([784, 10]))

    b = tf.Variable(tf.zeros([10]))

    # Maichine Learning Model.

    y = tf.nn.softmax(tf.matmul(x, W) + b)

    # New placeholder to input the correct answers.

    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)

    # Training 1000 times, 100 for each loop.

    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})

    correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

    # Testing accuracy using test images.

    print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

    执行,输出如下:

    # ~/tensorflow/bin/python2.7 tf_softmax_mnist.py

    Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.

    Extracting /tmp/MNIST_data/train-images-idx3-ubyte.gz

    Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.

    Extracting /tmp/MNIST_data/train-labels-idx1-ubyte.gz

    Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.

    Extracting /tmp/MNIST_data/t10k-images-idx3-ubyte.gz

    Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.

    Extracting /tmp/MNIST_data/t10k-labels-idx1-ubyte.gz

    0.9168

    上述红色0.9168,即为softmax学习mnist的准确率。

                                                             长按二维码关注公众号人工智能学堂

    相关文章

      网友评论

        本文标题:Tensorflow安装和入门简介

        本文链接:https://www.haomeiwen.com/subject/hsctuttx.html