发布于 2026-01-06 15 阅读
0

Getting started with Tensorflow 2.0 Setting up Tensorflow 2.0 Keras Overview Classification on Fashion MNIST dataset Google Colab

TensorFlow 2.0 入门

设置 TensorFlow 2.0

Keras 概述

基于时尚 MNIST 数据集的分类

Google Colab

TensorFlow 是一个开源的机器学习平台。使用 TensorFlow,我们可以轻松地编写、构建和部署我们的机器学习模型。

Tensorflow 2.0 注重简洁性和易用性,更新内容包括:

  1. 使用 Keras 轻松构建模型。
  2. 在任何平台上实现稳健的生产环境模型部署。
  3. 强大的研究实验工具。
  4. 通过清理已弃用的 API 和减少重复代码来简化 API。

本文面向想要了解如何入门 TensorFlow 2.0 的用户。它将帮助你在不到一小时内创建自己的图像分类模型!那么,让我们开始吧😃

设置 TensorFlow 2.0

使用 pip 安装 Tensorflow 2.0 包 -

pip install tensorflow==2.0.0-alpha0

要验证是否安装正确,请尝试导入 tensorflow 并检查其版本。(版本号应为 2.0.0-alpha0)

Keras 概述

在开始学习 TensorFlow 之前,我们应该先简要了解一下 Keras。Keras 是一个高级神经网络 API,用 Python 编写,可以运行在 TensorFlow、CNTK 或 Theano 之上。Keras 非常易于使用,可以帮助您快速构建模型。

Keras 的核心数据结构是模型,它是一种组织层级结构的方式。最简单的模型类型是序列模型,它是一种线性堆叠的层级结构。

Sequential模型定义如下:

from keras.models import Sequential
model = Sequential()

使用以下方式堆叠图层.add()

from keras.layers import Dense
model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))

模型构建完成后,即可配置其学习过程.compile()

model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

想了解更多关于Keras的信息,请点击链接。

基于时尚 MNIST 数据集的分类

我们准备构建自己的分类模型!这就像 TensorFlow 里的“Hello World”程序一样😄

我们采用了Fashion MNIST 数据集,该数据集包含 10 个类别共 70,000 张灰度图像。数据集中的每张图像都代表一种服装,分辨率为 28 x 28 像素。

执行必要的导入操作

import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt

可以直接从此处加载数据集keras.datasets

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

训练集train_images包含 6 万张图像,而待训练test_images集包含 1 万张图像。每张图像都是一个 28x28 的数组,像素值范围为 0 到 255。标签是一个整数数组,范围从 0 到 9,对应于服装类别。0 代表 T 恤/上衣,1 ​​代表裤子,依此类推。这 10 种服装类型被映射到class_names

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat','Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

将训练图像和测试图像缩放,使训练图像和测试图像的像素值都在 0 到 1 之间。

train_images = train_images / 255.0
test_images = test_images / 255.0

您可以绘制前 10 张图像来检查数据。

plt.figure(figsize=(10,10))
for i in range(10):
    plt.subplot(5,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i], cmap=plt.cm.binary)
    plt.xlabel(class_names[train_labels[i]])
plt.show()

ml1

时尚 MNIST(火车模型的前 10 张图片)

使用 Keras 构建序列模型

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

在神经网络中处理图像时,我们需要将 28×28 的二维数组展平为一维数组(28×28 = 784 像素)。该tf.keras.layers.Flatten层负责执行此任务。在此层之后,是两个全连接层,分别包含 128 个和 10 个神经元。最后一层的 softmax 激活函数返回一个包含 10 个值的数组,这些值对应于概率得分,且总和为 1。我们将概率最高的类别分配给输入图像。

编译模型

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
  1. 损失函数 ——它衡量模型在训练过程中的准确度。我们的目标是最小化这个函数。
  2. 优化器 ——这是根据模型看到的数据及其损失函数来更新模型的方式。
  3. 指标 ——用于监控训练和测试步骤。准确率衡量的是被正确分类的图像所占的比例。

训练模型

model.fit(train_images, train_labels, epochs=5)

要开始训练,我们调用该model.fit方法将模型拟合到训练数据。

评估准确性test_images

test_loss, test_acc = model.evaluate(test_images, test_labels)
print('\nTest accuracy:', test_acc)

利用这个简单的模型,我们达到了约0.86的准确率。

对……做出预测test images

predictions = model.predict(test_images)
predictions[0]

predictions[0]给出第一张测试图像的概率得分。我们可以查看最大概率或模型预测的类别。

np.argmax(predictions[0])

它给出的值为 9,表明模型已将此图像识别为踝靴class_names[9]。我们可以通过检查另一个值也为 9 的图像来验证此结果。test_labels[0]这表明我们的模型能够正确预测第一张测试图像的值 :)

就是这样!😛 你很快就能用 TensorFlow 2.0 和 Keras 构建并运行你的分类模型了。你可以修改代码,看看改变损失函数、训练轮数和优化器会对模型产生什么影响。如有需要,你可以在我的 GitHub仓库中找到相关的代码。

Google Colab

Colaboratory 允许我们使用 Jupyter Notebook 并与他人共享,无需在自己的电脑上下载、安装或运行任何程序(浏览器除外)。我们所有的 Notebook 都保存在 Google 云端硬盘上。在 Colab 中,代码在专用于我们帐户的虚拟机中执行。虚拟机在闲置一段时间后会被回收,并且系统会强制执行最长使用期限。我们经常会遇到模型训练方面的问题。使用 Colab 可以轻松解决这些问题,因为它提供免费的 GPU 和 TPU。要设置 Colab,您可以点击此链接😺

本文简要概述了 TensorFlow 2.0 的入门方法。我自己也还在学习中,随着学习的深入,我会陆续撰写关于回归、文本分类、模型保存、迁移学习、张量及其运算等方面的文章。😸 如果您觉得这篇文章有用,请点个赞❤。敬请期待更多 TensorFlow 相关内容!😄

文章来源:https://dev.to/apoorvadave/getting-started-with-tensorflow-2-0-2h3n