前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >课程 |《深度学习原理与TensorFlow实践》学习笔记(二)

课程 |《深度学习原理与TensorFlow实践》学习笔记(二)

作者头像
AI科技大本营
发布2018-04-26 14:14:38
9380
发布2018-04-26 14:14:38
举报
作者 | 王清

TensorFlow基础使用

  • 环境准备
    • TensorFlow安装
    • 常用Python库介绍
  • 实例解析
    • Kaggle平台及Titanic题目介绍
    • 代码解析
    • TensorBoard 可视化
  • 传统机器学习的优化技巧
    • 数据可视化
    • 特征工程
    • 经典机器学习算法模型
  • TFLearnKeras介绍及示例程序解析
环境准备
TensorFlow安装
  • 官方文档:https://www.tensorflow.org/install/
常用Python库介绍
  • NumPy (http://www.numpy.org/)
    • 为Python提供基础科学计算能力。
    • Numpy快速入门:http://cs231n.github.io/python-numpy-tutorial/
  • pandas (http://pandas.pydata.org/)
    • 高性能数据结构和数据分析工具,提供了一种高效的DataFrame结构,可以自动对齐、补全数据,免去了由于输入数据缺失导致的问题。
  • Matplotlib (http://matplotlib.org/)
    • 功能强大的画图引擎,可以制作高质量的图表。
  • PIL (http://www.pythonware.com/products/pil/)
    • 标准图片处理库,能够方便地读入和输出包括 jpg、png 等多种常见类型的图像文件,还能对图像做切割、翻转、添加文字等变换。
  • Jupyter Notebook (http://jupyter.org/)
    • 开源的交互式数据分析处理平台,以 Web 网页的形式创建和分享文档,并可以在文档中插入代码段,交互式的查看代码运行结果。
  • scikit-learn (http://scikit-learn.org/)
    • 机器学习工具库,封装了多种常用的分类、回归、聚类、数据将为、数据预处理等方法。
  • OpenCV (http://opencv.org/)
    • 跨平台机器视觉工具库,包含大量计算机视觉基本算法和高级功能。
  • One Platform to Have Them All – Anaconda 个人推荐
  • (https://www.continuum.io/downloads)
    • 用于科学计算的Python发行版,支持各大系统平台,提供包管理和环境管理的功能,预装好了众多Package(包括上述Python库)。
实例解析
Kaggle 平台及Titanic题目介绍
  • Kaggle 平台是著名的数据分析竞赛平台
  • Kaggle Datasets 网址:https://www.kaggle.com/datasets
  • Titanic 题目网址:https://www.kaggle.com/c/titanic
  • 题目描述:
    • 输入:乘客信息,包括姓名、性别、客舱等级、年龄等
    • 输出:判别每个乘客是否幸存
  • 题目分析:
    • 二分类问题:Survived (=1) or Deceased (=0)
    • 数据规模:训练集891条信息,测试集418条信息
代码解析
  • 课程代码: https://github.com/DeepVisionTeam/TensorFlowBook/tree/master/Titanic
  • 数据读入及预处理
    • 使用pandas读入csv文件,读入为pandas.DataFrame对象
    • 预处理
      • 剔除空数据
      • 将 ‘Sex’ 字段转换为int类型(’male’=0,’female’=1)
      • 选取数值类型的字段,抛弃字符串类型字段
    • 根据先验选出有用的特征字段,例如,妇女和儿童有机会先上救生艇(性别,年龄),课程示例中选取了6个字段,即特征有6个维度
    • 利用 one-hot encoding 预处理标签,标签是一个二维 Vector,如,幸存的标签(1,0),遇难的标签(0, 1)
    • 利用 sk-learn 将训练数据分为训练集和验证集,防止过拟合
  • 构建计算图和训练迭代
    • 采用逻辑回归作为该二分类问题的分类器:y=softmax(xW+b)
    • 使用 tf.placeholder 声明输入占位符
    • 用 tf.Variable() 声明 Weights 和 bias 变量
    • 构造前向传播计算图 y_pred = tf.nn.softmax(tf.matmul(input, weights) + bias)
    • 声明代价函数:使用交叉熵(cross-entropy)作为代价函数(注意极小误差值的加入)
    • 加入 SGD 优化算法
    • 计算准确率
    • 构建迭代 & 执行训练
      • 启动Session,代入数据(feed_dict)进行计算,训练结束后使用验证集评估训练效果,train_op 优化训练过程没有返回值,cost tensor 有返回值 loss:_,loss = sess.run([train_op, cost], feed_dict=feed)
      • 数据量小可直接用 numpy,数据量更建议使用 tensor
  • 存储和加载训练模型等
    • 通过 tf.train.Save 来存储和加载模型
TensorBoard 可视化
  • TensorBoard 的工作方式是启动一个 Web 服务,该服务进程从 TensorFlow 程序执行所得的事件日志文件(event files)中读取概要(summary)数据,然后将数据在网页中绘制成可视化的图表。

传统机器学习的优化技巧
数据可视化
  • 帮助理解数据,分析特征重要程度,便于筛选特征
特征工程
  • 数据清洗 & 预处理
    • 对存在字段缺失、格式错误的样本进行处理
    • 二值化(如,是否贵族)、标准化、归一化(如,年龄0~1),可以加快收敛,减小类内干扰,避免过拟合
    • 根据阈值过滤掉方差小(相关性小)的变量
    • 通过计算变量与标签的相关系数,留下相关性高的特征
    • 根据决策树或随机森林,选择重要程度高的特征
    • 利用PCA降维等算法,对数据进行变换,选择区分度最高的特征组合
经典机器学习算法模型
  • 逻辑回归
  • SVM
  • 神经网络
  • 决策树
  • 随机森林(Titanic 竞赛中效果最好的方法)
TFLearn、Keras介绍及示例程序解析
  • TFLearn (https://github.com/tflearn/tflearn)
    • 基于 TensorFlow 的更高层 API 库,具有更高程度的模块化,无缝兼容 TensorFlow 原生用法
    • 官方推出的仿照 scikit-learn 设计的高级 API,对常用的分类回归模型进行了封装,使得实现一个分类器仅需几行代码。
  • Keras (https://keras.io/)
    • 高级神经网络API库,代码可运行于TensorFlow、CNTK或Theano之上,也支持 TensorBoard,与 TensorFlow 在性能上没有区别(以TF为后端)。
  • TensorFlow学习资源:Awesome TensorFlow https://github.com/jtoy/awesome-tensorflow

相关阅读

《深度学习原理与TensorFlow实践》学习笔记(一)

没看够?点击阅读原文~~边学边看~~

原文链接: http://blog.csdn.net/applecore123456/article/details/74065229

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
    • TensorFlow安装
      • 常用Python库介绍
      • 实例解析
        • Kaggle 平台及Titanic题目介绍
          • 代码解析
            • TensorBoard 可视化
            • 传统机器学习的优化技巧
              • 数据可视化
                • 特征工程
                  • 经典机器学习算法模型
                  • TFLearn、Keras介绍及示例程序解析
                  相关产品与服务
                  图片处理
                  图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档