专栏名称: 机器学习研究会
机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。
目录
相关文章推荐
爱可可-爱生活  ·  【Genesis:一个为通用机器人和具身AI ... ·  昨天  
黄建同学  ·  #谷歌推出新一代视频生成模型Veo2##ai ... ·  2 天前  
宝玉xp  ·  OpenAI 直播第 8 天是 ... ·  4 天前  
51好读  ›  专栏  ›  机器学习研究会

实战 | 手把手教你从0开始Tensorflow的学习!(附视频)

机器学习研究会  · 公众号  · AI  · 2017-08-26 23:26

正文

首先认识一下tensorflow的基础姿势


  1. 使用图来表示计算任务

    TensorFlow是一个编程系统,它的计算可以表示为一个有向图。其中每一个运算操作op (operation)称为一个节点(node),节点与节点之间的连接称为边。计算图中每一个节点都可以有任意多个输入和输出,节点可以算是运算操作的实例化。 


    例如,通常在构建阶段创建一个图来表示和训练神经网络,然后在执行阶段反复执行图中的训练 op。


  2. 在被称之为会话(Session)的上下文中(context)中执行图

    构造阶段完成后,才能启动图。启动图的第一步是创建一个 Session 对象,如果无任何创建参数,会话构造器将启动默认图。


  3. 使用tensor表示数据

    TensorFlow 程序使用 tensor 数据结构来代表所有的数据,在计算图中流动的数据被称为张量(tensor),每个 tensor 是一个类型化的多维数组。


    例如,你可以将一小组图像集表示为一个四维浮点数数组,这四个维度分别是 [batch, height, width, channels]。


  4. 使用变量(Variable)维护状态

    变量维护图执行过程中的状态信息,通常会将一个统计模型中的参数表示为一组变量。


    例如,你可以将一个神经网络的权重作为某个变量存储在一个 tensor 中. 在训练过程中,通过重复运行训练图,更新这个 tensor.


  5. 使用feed和fetch可以为任意的操作赋值或者从其中获取数据

    TensorFlow 还提供了 feed 机制,该机制可以临时替代图中的任意操作中tensor 可以对图中任何操作提交补丁,直接插入一个 tensor.


    feed 使用一个 tensor 值临时替换一个操作的输出结果. 你可以提供 feed 数据作为 run() 调用的参数.


    feed 只在调用它的方法内有效,方法结束,feed 就会消失。最常见的用例是将某些特殊的操作指定为 “feed” 操作,标记的方法是使用 tf.placeholder() 为这些操作创建占位符。


            进入正题          


  搭建环境  


这里用windows系统举例:首先我们选择用Anaconda的方式搭建环境,因为现在python3.5的兼容性比较好,所以我们下载3.5版本的,链接在这里:

https://repo.continuum.io/archive/

我们选择Anaconda3-4.2.0-Windows-x86_64.exe进行下载,然后就像安装程序一样,一路点击next就好啦b( ̄▽ ̄)d 。然后我们打开cmd命令行,用pip安装tensorflow。


page
1


首先通过Anaconda创建一个名为tensorflow的python3.5环境。



会出现以下代码,输入y,继续安装。


之后激活tensorflow。


在这个网址中下载CPU版的tensorflow并安装:

https://github.com/tensorflow/tensorflow

在命令框输入pip 文件名。


最后就可以测试一下了,进入python,import tensorflow,如果你出现下图,代表成功啦。


为了更方便的使用Python,这里推荐一款小工具Jupyter。

首先退出python,重新激活tensorFlow环境,安装ipython和jupyter。


然后在命令行输入:

conda install ipython  

conda install jupyter 


环境就搭建好啦!


page
2


MNIST入门:

MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片,同时包含这些图片的标签:



我们的任务就是训练一个模型,用来预测里面的数字。

第一次跑MNIST,有了结果心里还是万分喜悦啊~~~大家以照着代码走一遍,同时小编还十分贴心的为大家准备了注释,不写注释的程序员不是好小编。


数据集下载:https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/examples/tutorials/mnist/input_data.py



1.我们首先载入tensorflow库


2.然后创建一个placeholder(占位符),作为数据的入口,placeholder的第一个参数是数据类型,第二个参数是数据的尺寸,这里的None代表不限制条数(图片张数)的输入,784代表每张图片都是一个784的维的向量。


3.接下来我们定义两个模型中要用到的参数,W(模型权重)和b(偏向),我们把这两个参数先全部初始化为0,在后面的训练中它们会学到合适的值,所以初始值不重要。




转自:习悦智能