前些年,深度学习领域的研究人员、开发人员和工程师必须经常做出一些选择:
- 我应该选择易于使用但自定义困难的 Keras 库?
- 还是应该使用难度更大的 TensorFlow API,编写大量代码?(更不用说一个不那么容易使用的 API 了。)
如果你陷于“应该使用 Keras 还是 TensorFlow”这样的问题,可以退一步再看,其实这是一个错误的问题,因为完成可以选择同时使用两个。
如果你是 TensorFlow 用户,那也应该开始考虑 Keras API 了,因为:
- 它是基于 TensorFlow 创建的
- 它更易于使用
- 当你需要用纯 TensorFlow 实现特定性能或功能时,它可以直接用于你的 Keras。
关于tf.keras基础知识点
- tf.keras的基本流程
- tf.keras实现模型构建的方法
- tf.keras中模型训练验证的相关方法
今天通过鸢尾花分类案例,来给大家介绍tf.keras的基本使用流程。tf.keras使用tensorflow中的高级接口,我们调用它即可完成:
- 导入和解析数据集
- 构建模型
- 使用样本数据训练该模型
- 评估模型的效果。
由于与scikit -learn的相似性,接下来我们将通过将Keras与scikit -learn进行比较,介绍tf.Keras的相关使用方法。
1.相关的库的导入
在这里使用sklearn和tf.keras完成鸢尾花分类,导入相关的工具包:
# 绘图
import seaborn as sns
# 数值计算
import numpy as np
# sklearn中的相关工具
# 划分训练集和测试集
from sklearn.model_selection import train_test_split
# 逻辑回归
from sklearn.linear_model import LogisticRegressionCV
# tf.keras中使用的相关工具
# 用于模型搭建
from tensorflow.keras.models import Sequential
# 构建模型的层和激活方法
from tensorflow.keras.layers import Dense, Activation
# 数据处理的辅助工具
from tensorflow.keras import utils
2.数据展示和划分
利用seborn导入相关的数据,iris数据以dataFrame的方式在seaborn进行存储,我们读取后并进行展示:
# 读取数据
iris = sns.load_dataset("iris")
# 展示数据的前五行
iris.head()
另外,利用seaborn中pairplot函数探索数据特征间的关系:
# 将数据之间的关系进行可视化
sns.pairplot(iris, hue='species')
将数据划分为训练集和测试集:从iris dataframe中提取原始数据,将花瓣和萼片数据保存在数组X中,标签保存在相应的数组y中:
# 花瓣和花萼的数据
X = iris.values[:, :4]
# 标签值
y = iris.values[:, 4]
利用train_test_split完成