Tensorflow的安装、环境配置与简介

作者: Panverson | 来源:发表于2019-03-09 17:53 被阅读137次

    @author:Panverson

    1 Tensorflow简介

    Tensorflow是由谷歌人工智能团队开发的深度学习框架。它是一种基于数据流(dataflow)编程的运算系统,基本的运算单位是张量(tensor),张量是一种任意维度的数组。在Tensorflow框架中,可用张量类型包括常数、变量、张量占位符和稀疏张量。
    Tensorflow的是通过创建会话(session),并在会话中搭建有向图图(graph)来执行运算,一般包括图的构建和图的执行两个阶段。在图的构建阶段中,我们需要定义各种常量、变量和操作,这些在tf中都被称为节点(operation,op)。


    1.1 图示意

    2 环境配置

    为了方便环境的搭建,我使用了anaconda 学习tf。Anaconda在安装完成之后就自带了大量的python库,并且可以创建多个python 的虚拟环境,以便使用不同的python版本,减少了不必要的麻烦。
    anaconda的下载地址:https://www.anaconda.com/distribution/
    完成安装以后,因为anaconda自带的python版本为3.7,而tensorflow目前仅支持到python3.6,所以我们要在cmd中先创建一个python3.6的虚拟环境。
    PS:由于我配置虚拟环境的时间比较早,当时tf还没有支持python3.7。现在已经支持最新的python3.7了,大家可以省略这个步骤了。
    conda create -n your_env_name python=X.X
    x.x 为python的版本
    your_env_name文件可以在Anaconda安装目录envs文件下找到。
    当然,以上的操作都可以在anaconda软件中而不使用命令行操作。
    然后执行
    activate your_env_name
    进入虚拟环境,就可以使用pip等的命令。

    3 Tensorflow的安装

    Tensorflow分为cpu和gpu两个版本,因为我的是笔记本电脑,训练神经网络需要长时间CPU、GPU的满负荷运行,本来就不适合用于跑神经网络,所以我只是安装了cpu版本进行学习。
    进入虚拟环境以后,执行
    pip install tensorflow
    安装Tensorflow库。若要安装gpu版本,只需要把tensorflow换成tensorflow-gpu即可。
    安装完成以后,我使用spyder作编辑器写代码,运行一下这段代码来检测tensorflow是否正确安装了(注意,直接打开spyder默认的python版本是3.7,需要在anaconda中切换成自己创建的3.6版本后再启动)。

    注意python环境
    import tensorflow as tf
    如果编译器没有报错,说明成功安装了。

    4 Tensorflow的Helloworld程序

    MNIST是机器学习中“hello world”式的入门级别的计算机视觉数据集,它包含各种手写数字图片,它也包含每一张图片对应的标签,告诉我们这个数字是几。我们使用MNIST数据集,搭建一个简单的神经网络,来进行训练。
    在编译器中写下以下代码,并运行:

    import tensorflow as tf
    from tensorflow.examples.tutorials.mnist import input_data
    mnist = input_data.read_data_sets("MNIST_data",one_hot=True) 
    #定义变量
    x = tf.placeholder(tf.float32,[None,784])
    y_ = tf.placeholder(tf.float32,[None,10])
    #创建神经网格
    W = tf.Variable(tf.zeros([784,10]))
    b = tf.Variable(tf.zeros([10]))
    y = tf.nn.softmax(tf.matmul(x,W) + b)
    #二次代价函数
    loss = tf.reduce_mean(tf.square(y_ - y))
    #梯度下降法
    train_step = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
    #初始化变量
    init = tf.global_variables_initializer()
    #求准确率
    correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
    with tf.Session() as sess:
        sess.run(init)
    #对55000个训练数据进行21次训练
        for n in range(21):
            for i in range(550):
                batch_xs,batch_ys=mnist.train.next_batch(100)
                sess.run(train_step,feed_dict={x:batch_xs,y_:batch_ys})
                acc=sess.run(accuracy,feed_dict={x:mnist.test.images,y_:mnist.test.labels})
            print("Iter " + str(n)+",Testing Accuracy "+str(acc))
    

    可以看到运行结果:


    运行结果

    从结果可以看出,这个神经网络进行了21次训练,最终的准确率到达了92%左右。后续我们可以增加这个网络的层数,或者增加训练次数,以达到更高的准确率。
    执行过程中,我可以明显的感觉到笔记本的风扇提升的转速,说明这时候CPU状态繁忙,我们可以打开任务管理器监视CPU核心的负荷情况。

    相关文章

      网友评论

        本文标题:Tensorflow的安装、环境配置与简介

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