《深度学习原理与TensorFlow实践》学习笔记(二)
来源:互联网 发布:unity3d 模型导出插件 编辑:程序博客网 时间:2024/06/05 03:41
- TensorFlow基础使用
- 环境准备
- TensorFlow安装
- 常用Python库介绍
- 实例解析
- Kaggle 平台及Titanic题目介绍
- 代码解析
- TensorBoard 可视化
- 传统机器学习的优化技巧
- 数据可视化
- 特征工程
- 经典机器学习算法模型
- TFLearnKeras介绍及示例程序解析
- 环境准备
- TensorFlow基础使用
TensorFlow基础使用
环境准备
TensorFlow安装
- 官方文档:https://www.tensorflow.org/install/
常用Python库介绍
- NumPy (link)
- 为Python提供基础科学计算能力。
- Numpy快速入门:http://cs231n.github.io/python-numpy-tutorial/
- pandas (link)
- 高性能数据结构和数据分析工具,提供了一种高效的DataFrame结构,可以自动对齐、补全数据,免去了由于输入数据缺失导致的问题。
- Matplotlib (link)
- 功能强大的画图引擎,可以制作高质量的图表。
- PIL (link)
- 标准图片处理库,能够方便地读入和输出包括 jpg、png 等多种常见类型的图像文件,还能对图像做切割、翻转、添加文字等变换。
- Jupyter Notebook (link)
- 开源的交互式数据分析处理平台,以 Web 网页的形式创建和分享文档,并可以在文档中插入代码段,交互式的查看代码运行结果。
- scikit-learn (link)
- 机器学习工具库,封装了多种常用的分类、回归、聚类、数据将为、数据预处理等方法。
- OpenCV (link)
- 跨平台机器视觉工具库,包含大量计算机视觉基本算法和高级功能。
- One Platform to Have Them All – Anaconda (link)
个人推荐
- 用于科学计算的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
- 启动Session,代入数据(
- 采用逻辑回归作为该二分类问题的分类器:
- 存储和加载训练模型等
- 通过
tf.train.Save
来存储和加载模型
- 通过
TensorBoard 可视化
- TensorBoard 的工作方式是启动一个 Web 服务,该服务进程从 TensorFlow 程序执行所得的事件日志文件(event files)中读取概要(summary)数据,然后将数据在网页中绘制成可视化的图表。
传统机器学习的优化技巧
数据可视化
- 帮助理解数据,分析特征重要程度,便于筛选特征
特征工程
- 数据清洗 & 预处理
- 对存在字段缺失、格式错误的样本进行处理
- 二值化(如,是否贵族)、标准化、归一化(如,年龄0~1),可以加快收敛,减小类内干扰,避免过拟合
- 根据阈值过滤掉方差小(相关性小)的变量
- 通过计算变量与标签的相关系数,留下相关性高的特征
- 根据决策树或随机森林,选择重要程度高的特征
- 利用PCA降维等算法,对数据进行变换,选择区分度最高的特征组合
经典机器学习算法模型
- 逻辑回归
- SVM
- 神经网络
- 决策树
- 随机森林(Titanic 竞赛中效果最好的方法)
TFLearn、Keras介绍及示例程序解析
- TFLearn (link)
- 基于 TensorFlow 的更高层 API 库,具有更高程度的模块化,无缝兼容 TensorFlow 原生用法
- 官方推出的仿照 scikit-learn 设计的高级 API,对常用的分类回归模型进行了封装,使得实现一个分类器仅需几行代码。
- Keras (link)
- 高级神经网络API库,代码可运行于TensorFlow、CNTK或Theano之上,也支持 TensorBoard,与 TensorFlow 在性能上没有区别(以TF为后端)。
- TensorFlow学习资源:Awesome TensorFlow https://github.com/jtoy/awesome-tensorflow
Edited by @AppleCore_Q | http://blog.csdn.net/applecore123456
阅读全文
0 0
- 《深度学习原理与TensorFlow实践》学习笔记(二)
- 《深度学习原理与TensorFlow实践》学习笔记(一)
- 《深度学习原理与TensorFlow实践》学习笔记(三)
- 《深度学习原理与TensorFlow实践》学习笔记(四)
- 【深度学习笔记】(二)Hello, Tensorflow!
- 【深度学习笔记】(二)Hello, Tensorflow!
- TensorFlow深度学习笔记 循环神经网络实践
- 负载均衡原理与实践学习笔记(二)
- tensorflow深度学习原理
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- Tensorflow深度学习笔记(二)-图、会话和变量
- TensorFlow 深度学习笔记
- tensorflow63 《深度学习原理与TensorFlow实战》03 Hello TensorFlow
- mysql5.7安装步奏
- 多线程(下)
- 错误提示信息汇总
- spring+maven+log4j2 配置
- POJ 2502 Subway 笔记
- 《深度学习原理与TensorFlow实践》学习笔记(二)
- 深copy和浅copy
- 正则表达式
- Markdown进阶:序列图
- 微信开发交互返回当前时间的说明
- Java Web笔记
- EasyDSS流媒体解决方案之视频上传
- 33---varnish 4.0 工作机制和配置实例解析(上)
- 快速排序