美文网首页我爱编程
TensorFlow 的准备工作和例子

TensorFlow 的准备工作和例子

作者: Stony | 来源:发表于2016-10-22 12:29 被阅读3317次

    准备工作

    https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html
    要点:

    • 基于Python,不同操作系统的安装方式略有不同(pip)
    • 支持 CPU 或者 GPU (Cuda Toolkit, cuDNN)的版本
    • 建议使用 环境隔离(virtualenv)/虚拟化(docker) 的环境

    pip install

    安装python的依赖环境

    # Ubuntu/Linux 64-bit
    $ sudo apt-get install python-pip python-dev
    
    # Mac OS X
    $ sudo easy_install pip
    $ sudo easy_install --upgrade six
    

    选择对应的TensorFlow安装版本

    # Ubuntu/Linux 64-bit, CPU only, Python 2.7
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
    # Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
    
    # Mac OS X, CPU only, Python 2.7:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc0-py2-none-any.whl
    
    # Mac OS X, GPU enabled, Python 2.7:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0rc0-py2-none-any.whl
    
    # Ubuntu/Linux 64-bit, CPU only, Python 3.4
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp34-cp34m-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, GPU enabled, Python 3.4
    # Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp34-cp34m-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, CPU only, Python 3.5
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp35-cp35m-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, GPU enabled, Python 3.5
    # Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp35-cp35m-linux_x86_64.whl
    
    # Mac OS X, CPU only, Python 3.4 or 3.5:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc0-py3-none-any.whl
    
    # Mac OS X, GPU enabled, Python 3.4 or 3.5:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0rc0-py3-none-any.whl
    

    安装TensorFlow

    # Python 2
    $ sudo pip install --upgrade $TF_BINARY_URL
    
    # Python 3
    $ sudo pip3 install --upgrade $TF_BINARY_URL
    

    Virtualenv

    安装python的开发依赖环境和Virtualenv

    # Ubuntu/Linux 64-bit
    $ sudo apt-get install python-pip python-dev python-virtualenv
    
    # Mac OS X
    $ sudo easy_install pip
    $ sudo pip install --upgrade virtualenv
    

    建立专用的虚拟环境所在的文件夹

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

    激活虚拟环境

    $ source ~/tensorflow/bin/activate  # If using bash
    $ source ~/tensorflow/bin/activate.csh  # If using csh
    (tensorflow)$  # Your prompt should change
    

    关闭虚拟环境

    (tensorflow)$ deactivate
    
    $  # Your prompt should change back
    

    选择对应的TensorFlow安装版本

    # Ubuntu/Linux 64-bit, CPU only, Python 2.7
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
    # Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
    
    # Mac OS X, CPU only, Python 2.7:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc0-py2-none-any.whl
    
    # Mac OS X, GPU enabled, Python 2.7:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0rc0-py2-none-any.whl
    
    # Ubuntu/Linux 64-bit, CPU only, Python 3.4
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp34-cp34m-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, GPU enabled, Python 3.4
    # Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp34-cp34m-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, CPU only, Python 3.5
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp35-cp35m-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, GPU enabled, Python 3.5
    # Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp35-cp35m-linux_x86_64.whl
    
    # Mac OS X, CPU only, Python 3.4 or 3.5:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc0-py3-none-any.whl
    
    # Mac OS X, GPU enabled, Python 3.4 or 3.5:
    $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0rc0-py3-none-any.whl
    

    安装TensorFlow

    # Python 2
    $ sudo pip install --upgrade $TF_BINARY_URL
    
    # Python 3
    $ sudo pip3 install --upgrade $TF_BINARY_URL
    

    Anaconda installation (科学计算版本Python 略)

    Docker

    docker images:

    • gcr.io/tensorflow/tensorflow: TensorFlow CPU binary image.
    • gcr.io/tensorflow/tensorflow:latest-devel: CPU Binary image plus source code.
    • gcr.io/tensorflow/tensorflow:latest-gpu: TensorFlow GPU binary image.
    • gcr.io/tensorflow/tensorflow:latest-devel-gpu: GPU Binary image plus source code.

    安装Docker

    安装TensorFlow Docker Image (CPU版本)

    $ docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow
    

    安装TensorFlow Docker Image (GPU版本)

    $ nvidia-docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu
    
    # or
    $ path/to/repo/tensorflow/tools/docker/docker_run_gpu.sh -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu
    

    更多参考
    https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/docker

    验证安装结果

    常见错误

    $ python
    ...
    >>> import tensorflow as tf
    >>> hello = tf.constant('Hello, TensorFlow!')
    >>> sess = tf.Session()
    >>> print(sess.run(hello))
    Hello, TensorFlow!
    >>> a = tf.constant(10)
    >>> b = tf.constant(32)
    >>> print(sess.run(a + b))
    42
    >>>
    

    项目源代码

    $ git clone https://github.com/tensorflow/tensorflow
    包含一些例子和工具

    手写识别的例子

    # Copyright 2015 The TensorFlow Authors. All Rights Reserved.
    
    #
    
    # Licensed under the Apache License, Version 2.0 (the "License");
    
    # you may not use this file except in compliance with the License.
    
    # You may obtain a copy of the License at
    
    #
    
    # http://www.apache.org/licenses/LICENSE-2.0
    
    #
    
    # Unless required by applicable law or agreed to in writing, software
    
    # distributed under the License is distributed on an "AS IS" BASIS,
    
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    
    # See the License for the specific language governing permissions and
    
    # limitations under the License.
    
    # ==============================================================================
    
    """A very simple MNIST classifier.
    
    See extensive documentation at
    
    http://tensorflow.org/tutorials/mnist/beginners/index.md
    
    """
    
    from __future__ import absolute_import
    
    from __future__ import division
    
    from __future__ import print_function
    
    import argparse
    
    # Import data
    
    from tensorflow.examples.tutorials.mnist import input_data
    
    import tensorflow as tf
    
    FLAGS = None
    
    def main(_):
    
    mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)
    
    # Create the model
    
    x = tf.placeholder(tf.float32, [None, 784])
    
    W = tf.Variable(tf.zeros([784, 10]))
    
    b = tf.Variable(tf.zeros([10]))
    
    y = tf.matmul(x, W) + b
    
    # Define loss and optimizer
    
    y_ = tf.placeholder(tf.float32, [None, 10])
    
    # The raw formulation of cross-entropy,
    
    #
    
    # tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(tf.softmax(y)),
    
    # reduction_indices=[1]))
    
    #
    
    # can be numerically unstable.
    
    #
    
    # So here we use tf.nn.softmax_cross_entropy_with_logits on the raw
    
    # outputs of 'y', and then average across the batch.
    
    cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_))
    
    train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
    
    sess = tf.InteractiveSession()
    
    # Train
    
    tf.initialize_all_variables().run()
    
    for _ in range(1000):
    
    batch_xs, batch_ys = mnist.train.next_batch(100)
    
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
    
    # Test trained model
    
    correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
    
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    
    print(sess.run(accuracy, feed_dict={x: mnist.test.images,
    
    y_: mnist.test.labels}))
    
    if __name__ == '__main__':
    
    parser = argparse.ArgumentParser()
    
    parser.add_argument('--data_dir', type=str, default='/tmp/data',
    
    help='Directory for storing data')
    
    FLAGS = parser.parse_args()
    
    tf.app.run()
    

    相关文章

      网友评论

        本文标题:TensorFlow 的准备工作和例子

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