区块链技术博客
www.b2bchain.cn

机器学习开发流程求职学习资料

本文介绍了机器学习开发流程求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

  • MNIST
    • 图片
    • 标签
    • One-hot
    • 优点
    • 张量
  • 开发流程
    • 准备数据集
    • 定义模型
    • 训练模型
    • 评估模型
    • 部署
    • 转换模型
    • 保存模型(量化可选)
    • 部署模型
  • 小结

学习上,兴趣是最好的老师。学习机器学习,案例是最好的老师

一般地,机器学习开发流程如下图所示:

机器学习开发流程

本文以 MNIST 为例,讲解如何实践机器学习开发流程,部署后的效果如下图所示:

机器学习开发流程

注:

  • 本例问题构建已经明确,故没有这一步
  • 获取数据与探索并准备数据,由于 Keras 一并提供了,故也没有这一步
  • 这两部分再后续的其他例子中会补充

MNIST

MNIST 是一个入门级的计算机视觉数据集,它包含各种手写数字图片。在机器学习中的地位相当于编程语言入门的 Hello World

机器学习开发流程

该数据集包含以下内容:

  • train-images-idx3-ubyte.gz: 训练集-图片,6w
  • train-labels-idx1-ubyte.gz: 训练集-标签,6w
  • t10k-images-idx3-ubyte.gz: 测试集-图片,1w
  • t10k-labels-idx1-ubyte.gz: 测试集-标签,1w

图片

MNIST 数据集里的每张图片大小为 28 * 28 像素,可以用 28 * 28 的大小的矩阵来表示一张图片。

机器学习开发流程

标签

标签用大小为 10(0-9 10 种分类) 的数组向量)来表示,这种编码我们称之为 One-hot 编码。

One-hot

One-hot 使用 N 位代表 N 种状态,任意时候只有其中一位有效

机器学习开发流程

以 MNIST 为例,总的有 10 种数字,也就是有 10 中状态

9 = [0,0,0,0,0,0,0,0,0,1] 1 = [0,1,0,0,0,0,0,0,0,0]

优点

  • 能够处理非连续型数值特征
  • 在一定程度上也扩充了特征。比如数字本身是一个特征,经过编码以后,就变成了 0-9 10 个特征。

在机器学习工作原理提过模型是有准确率的,也就是说模型给的输出,不一定是 100% 的,用术语来讲叫置信度

比如,模型预测你书写的数字,20% 的可能是 870% 可能是 610% 可能是 9,那么模型的最大可能输出就是 6,它的置信度是 70%

这个时候,One-hot 的优势就表现出来了,编码相当容易:[0,0,0,0,0,0,0.7,0,0.2,0.1]

张量

在上面的数据表示中,出现过标量(scalar)向量(vector)矩阵(matrix),大家应该还听过张量(tensor)

机器学习开发流程

大家可以这样简单去理解:

  • 标量是 0 阶张量;向量是 1 阶张量;矩阵是 2 阶张量
  • 标量的表示;向量线的表示;矩阵的表示;张量的表示
  • 机器学习中,几乎所有计算都是张量计算,所以 TensorFlow 会以 Tensor 前缀来命名。
  • 在 TensorFlow 中一般使用 numpy.ndarray 来表示张量。

开发流程

下面,直接进入实际的项目代码,感受下整体的开发流程。

使用 jupyter lab 打开环境,然后导入 https://github.com/CatchZeng/YiAI-examples/blob/master/MNIST/mnist.ipynb 。

准备数据集

Keras 提供了便捷的 API 下载 MNIST 数据集, 并切分为训练测试集

注:这里可以使用 typeshape 查看数据的具体类型形状,加深对上述知识点的理解。

mnist = keras.datasets.mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()  print(f'train_iamge type:{type(train_images)} shape:{train_images.shape}') print(f'train_labels type:{type(train_labels)} shape:{train_labels.shape}') print(train_images[0]) print(train_labels[0])

“`
train_iamge type: shape:(60000, 28, 28)
train_labels type: shape:(60000,)

  • MNIST
    • 图片
    • 标签
    • One-hot
    • 优点
    • 张量
  • 开发流程
    • 准备数据集
    • 定义模型
    • 训练模型
    • 评估模型
    • 部署
    • 转换模型
    • 保存模型(量化可选)
    • 部署模型
  • 小结

学习上,兴趣是最好的老师。学习机器学习,案例是最好的老师

一般地,机器学习开发流程如下图所示:

机器学习开发流程

本文以 MNIST 为例,讲解如何实践机器学习开发流程,部署后的效果如下图所示:

机器学习开发流程

注:

  • 本例问题构建已经明确,故没有这一步
  • 获取数据与探索并准备数据,由于 Keras 一并提供了,故也没有这一步
  • 这两部分再后续的其他例子中会补充

MNIST

MNIST 是一个入门级的计算机视觉数据集,它包含各种手写数字图片。在机器学习中的地位相当于编程语言入门的 Hello World

机器学习开发流程

该数据集包含以下内容:

  • train-images-idx3-ubyte.gz: 训练集-图片,6w
  • train-labels-idx1-ubyte.gz: 训练集-标签,6w
  • t10k-images-idx3-ubyte.gz: 测试集-图片,1w
  • t10k-labels-idx1-ubyte.gz: 测试集-标签,1w

图片

MNIST 数据集里的每张图片大小为 28 * 28 像素,可以用 28 * 28 的大小的矩阵来表示一张图片。

机器学习开发流程

标签

标签用大小为 10(0-9 10 种分类) 的数组向量)来表示,这种编码我们称之为 One-hot 编码。

One-hot

One-hot 使用 N 位代表 N 种状态,任意时候只有其中一位有效

机器学习开发流程

以 MNIST 为例,总的有 10 种数字,也就是有 10 中状态

9 = [0,0,0,0,0,0,0,0,0,1] 1 = [0,1,0,0,0,0,0,0,0,0]

优点

  • 能够处理非连续型数值特征
  • 在一定程度上也扩充了特征。比如数字本身是一个特征,经过编码以后,就变成了 0-9 10 个特征。

在机器学习工作原理提过模型是有准确率的,也就是说模型给的输出,不一定是 100% 的,用术语来讲叫置信度

比如,模型预测你书写的数字,20% 的可能是 870% 可能是 610% 可能是 9,那么模型的最大可能输出就是 6,它的置信度是 70%

这个时候,One-hot 的优势就表现出来了,编码相当容易:[0,0,0,0,0,0,0.7,0,0.2,0.1]

张量

在上面的数据表示中,出现过标量(scalar)向量(vector)矩阵(matrix),大家应该还听过张量(tensor)

机器学习开发流程

大家可以这样简单去理解:

  • 标量是 0 阶张量;向量是 1 阶张量;矩阵是 2 阶张量
  • 标量的表示;向量线的表示;矩阵的表示;张量的表示
  • 机器学习中,几乎所有计算都是张量计算,所以 TensorFlow 会以 Tensor 前缀来命名。
  • 在 TensorFlow 中一般使用 numpy.ndarray 来表示张量。

开发流程

下面,直接进入实际的项目代码,感受下整体的开发流程。

使用 jupyter lab 打开环境,然后导入 https://github.com/CatchZeng/YiAI-examples/blob/master/MNIST/mnist.ipynb 。

准备数据集

Keras 提供了便捷的 API 下载 MNIST 数据集, 并切分为训练测试集

注:这里可以使用 typeshape 查看数据的具体类型形状,加深对上述知识点的理解。

mnist = keras.datasets.mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()  print(f'train_iamge type:{type(train_images)} shape:{train_images.shape}') print(f'train_labels type:{type(train_labels)} shape:{train_labels.shape}') print(train_images[0]) print(train_labels[0])

“`
train_iamge type: shape:(60000, 28, 28)
train_labels type: shape:(60000,)

  • MNIST
    • 图片
    • 标签
    • One-hot
    • 优点
    • 张量
  • 开发流程
    • 准备数据集
    • 定义模型
    • 训练模型
    • 评估模型
    • 部署
    • 转换模型
    • 保存模型(量化可选)
    • 部署模型
  • 小结

学习上,兴趣是最好的老师。学习机器学习,案例是最好的老师

一般地,机器学习开发流程如下图所示:

机器学习开发流程

本文以 MNIST 为例,讲解如何实践机器学习开发流程,部署后的效果如下图所示:

机器学习开发流程

注:

  • 本例问题构建已经明确,故没有这一步
  • 获取数据与探索并准备数据,由于 Keras 一并提供了,故也没有这一步
  • 这两部分再后续的其他例子中会补充

MNIST

MNIST 是一个入门级的计算机视觉数据集,它包含各种手写数字图片。在机器学习中的地位相当于编程语言入门的 Hello World

机器学习开发流程

该数据集包含以下内容:

  • train-images-idx3-ubyte.gz: 训练集-图片,6w
  • train-labels-idx1-ubyte.gz: 训练集-标签,6w
  • t10k-images-idx3-ubyte.gz: 测试集-图片,1w
  • t10k-labels-idx1-ubyte.gz: 测试集-标签,1w

图片

MNIST 数据集里的每张图片大小为 28 * 28 像素,可以用 28 * 28 的大小的矩阵来表示一张图片。

机器学习开发流程

标签

标签用大小为 10(0-9 10 种分类) 的数组向量)来表示,这种编码我们称之为 One-hot 编码。

One-hot

One-hot 使用 N 位代表 N 种状态,任意时候只有其中一位有效

机器学习开发流程

以 MNIST 为例,总的有 10 种数字,也就是有 10 中状态

9 = [0,0,0,0,0,0,0,0,0,1] 1 = [0,1,0,0,0,0,0,0,0,0]

优点

  • 能够处理非连续型数值特征
  • 在一定程度上也扩充了特征。比如数字本身是一个特征,经过编码以后,就变成了 0-9 10 个特征。

在机器学习工作原理提过模型是有准确率的,也就是说模型给的输出,不一定是 100% 的,用术语来讲叫置信度

比如,模型预测你书写的数字,20% 的可能是 870% 可能是 610% 可能是 9,那么模型的最大可能输出就是 6,它的置信度是 70%

这个时候,One-hot 的优势就表现出来了,编码相当容易:[0,0,0,0,0,0,0.7,0,0.2,0.1]

张量

在上面的数据表示中,出现过标量(scalar)向量(vector)矩阵(matrix),大家应该还听过张量(tensor)

机器学习开发流程

大家可以这样简单去理解:

  • 标量是 0 阶张量;向量是 1 阶张量;矩阵是 2 阶张量
  • 标量的表示;向量线的表示;矩阵的表示;张量的表示
  • 机器学习中,几乎所有计算都是张量计算,所以 TensorFlow 会以 Tensor 前缀来命名。
  • 在 TensorFlow 中一般使用 numpy.ndarray 来表示张量。

开发流程

下面,直接进入实际的项目代码,感受下整体的开发流程。

使用 jupyter lab 打开环境,然后导入 https://github.com/CatchZeng/YiAI-examples/blob/master/MNIST/mnist.ipynb 。

准备数据集

Keras 提供了便捷的 API 下载 MNIST 数据集, 并切分为训练测试集

注:这里可以使用 typeshape 查看数据的具体类型形状,加深对上述知识点的理解。

mnist = keras.datasets.mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()  print(f'train_iamge type:{type(train_images)} shape:{train_images.shape}') print(f'train_labels type:{type(train_labels)} shape:{train_labels.shape}') print(train_images[0]) print(train_labels[0])

“`
train_iamge type: shape:(60000, 28, 28)
train_labels type: shape:(60000,)

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 机器学习开发流程求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们