Tensorflow 2.0入门
Tensorflow是一个用于机器学习的开源平台。使用tensorflow,我们可以轻松编写,构建和部署我们的机器学习模型。
Tensorflow 2.0侧重于简单性和易用性,具有以下更新:
- 与Keras轻松建模。
- 在任何平台上进行生产中的强大模型部署。
- 强大的研究实验。
- 通过清理已弃用的API并减少重复来简化API。
本文适合那些想知道如何从Tensorflow 2.0开始的人。它将帮助您在不到一个小时的时间内创建自己的图像分类模型让我们开始?
设置Tensorflow 2.0
使用pip安装Tensorflow 2.0软件包 –
果仁 安装 tensorflow==2.0.0 alpha0
要验证它是否已正确安装,请尝试导入tensorflow并检查其版本。 (它应该指向2.0.0-alpha0)
Keras概述
在我们开始使用tensorflow之前,我们应该简要概述一下Keras是什么。 Keras是一个高级神经网络API,用Python编写,能够在TensorFlow,CNTK或Theano之上运行。使用Keras非常人性化,它可以帮助您立即构建模型。
Keras的核心数据结构是一种模型,一种组织层的方式。最简单的模型是Sequential模型,一个线性的层叠。
顺序
模型定义为:
从 keras.models 进口 顺序 模型 = 顺序()
使用堆叠图层 。加()
:
从 keras.layers 进口 稠密 模型。加(稠密(单位=64, 激活='RELU', input_dim=100)) 模型。加(稠密(单位=10, 激活='SOFTMAX'))
模型构建完成后,可以配置其学习过程 .compile()
:
模型。编(失利='categorical_crossentropy', 优化=“新元”, 指标=('准确性'))
要了解更多关于Keras的信息,请点击链接
时尚MNIST数据集的分类
我们准备建立自己的分类模型这就像张量流“中的”Hello World“
我们采用了Fashion MNIST数据集,该数据集包含10个类别中的70,000个灰度图像。数据中心化的每个图像都是一种服装类型,分辨率为28乘28像素。
做必要的进口
进口 tensorflow 如 TF 从 tensorflow 进口 keras 进口 numpy的 如 NP 进口 matplotlib.pyplot 如 PLT
数据集可以直接从中加载 keras.datasets
fashion_mnist = keras。数据集。fashion_mnist (train_images, train_labels) (test_images, test_labels) = fashion_mnist。load_data()
训练集 train_images
有60k图像 test_images
有10k图像。每个图像是一个28×28阵列,像素值范围从0到255.标签是一个整数数组,范围从0到9,对应于服装类别。 0对应T恤/上衣,1对应裤子等。这10类服装类型被映射到 class_names
class_names = (“T恤/顶”, '裤子', '拉过来', '连衣裙', '涂层',“凉鞋”, '衬衫', “运动鞋”, '袋', '踝靴')
缩放列车并测试图像,使列车和测试图像的像素值在0和1之间。
train_images = train_images / 255.0 test_images = test_images / 255.0
您可以绘制前10个图像以检查数据。
PLT。数字(figsize=(10,10)) 对于 一世 在 范围(10): PLT。插曲(五,五,一世+1) PLT。xticks(()) PLT。yticks(()) PLT。格(假) PLT。imshow(train_images(一世) CMAP=PLT。厘米。二进制) PLT。xlabel(class_names(train_labels(一世))) PLT。节目()
时尚MNIST(火车组的前10张图片)
使用keras构建顺序模型
模型 = keras。顺序(( keras。层。弄平(input_shape=(28, 28)), keras。层。稠密(128, 激活='RELU') keras。层。稠密(10, 激活='SOFTMAX') ))
在处理神经网络中的图像时,我们需要将28乘28的2D阵列展平为1D阵列(28 * 28 = 784像素)。 tf.keras.layers.Flatten
图层执行此任务。在该层之后,存在两个密集层(完全连接),分别具有128和10个神经元。最后一层中的Softmax激活函数返回10个值的数组,这些值对应于总和为1的概率分数。我们获得最高概率的类被分配给输入图像。
编译模型
模型。编(优化='亚当', 失利='sparse_categorical_crossentropy', 指标=('准确性'))
- 损失函数 – 测量模型在训练期间的准确度。我们希望最小化此功能。
- 优化器 – 这是根据所看到的数据及其损失函数更新模型的方式。
- 指标 – 用于监控培训和测试步骤。精度测量正确分类的图像的分数。
训练模型
模型。适合(train_images, train_labels, 时代=五)
为了开始训练,我们打电话给 model.fit
将模型拟合到训练数据的方法。
评估准确性 test_images
test_loss, test_acc = 模型。评估(test_images, test_labels) 打印(“ n测试准确度:', test_acc)
使用这个简单的模型,我们可以达到~0.86的精度
做出预测 测试图像
预测 = 模型。预测(test_images) 预测(0)
预测(0)
给出第一个测试图像的概率分数。我们可以检查模型预测的最大概率或类别。
NP。argmax(预测(0))
它给出一个值9,表示该模型已将该图像识别为踝靴,或 class_names(9)
。我们可以通过检查来验证这个结果 test_labels(0)
它也有一个值9.这表明我们的模型能够预测第一个测试图像的正确值:)
就是这个 ?您可以使用Tensorflow 2.0和Keras立即启动并运行您的分类模型。您可以使用代码来检查对更改损失函数,时期数量,优化程序的影响。如果需要,您可以在我的Github仓库中查找此代码
谷歌Colab
Colaboratory允许我们与其他人一起使用和共享Jupyter笔记本电脑,而无需在浏览器以外的任何计算机上下载,安装或运行任何东西。我们所有的笔记本都保存在Google云端硬盘上。在Colabs中,代码在专用于我们帐户的虚拟机中执行。虚拟机在闲置一段时间后会被回收,并且系统会执行最长生命周期。我们很多时候都在训练模型时面临问题。它可以使用Colab轻松完成,因为它提供免费的GPU和TPU。要设置Colab,您可以点击链接?
这是Tensorflow 2.0入门的简要概述。我自己也在学习过程中,因为我知道我将如何写回归,文本分类,保存模型,转移学习,张量和操作?如果你发现文章有用,请展示一些❤。请继续关注更多张力流 ?