欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

TensorFlow 2.0 极简教程,不到 20 行代码带你入门

发布时间:2025/5/22 编程问答 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 TensorFlow 2.0 极简教程,不到 20 行代码带你入门 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

今天,Google 发布了 TensorFlow 2.0 的 alpha 版本,真是千呼万唤始出来,对应的 2.0 官方教程 也释出,本文翻译了官方最简单的一个教程,带你入门 TensorFlow。

有条件的人,可以直接在 colab 上运行代码:https://colab.research.google.com/notebooks/welcome.ipynb

对 TensorFlow 比较熟悉或者已经使用过 tf.keras API 的可以看 进阶教程

由于 TensorFlow 升级到了 2.0 alpha 版本,因此需要先安装:

# CPU 版本 pip install tensorflow==2.0.0-alpha0# GPU 版本 pip install tensorflow-gpu==2.0.0-alpha0

开始导入

from __future__ import absolute_import, division, print_functionimport tensorflow as tf

载入 MNIST 数据集,并将整型转换为浮点型,除以 255 是为了归一化。

mnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0

也可以使用 TensorFlow 新出的 tensorflow-datasets 载入数据集,传送门。

使用 tf.keras.Sequential 建立模型,并且选择优化器和损失函数

model = tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape=(28, 28)),tf.keras.layers.Dense(128, activation='relu'),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10, activation='softmax') ])model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])

代码解释:

  • Sequential 用于建立序列模型
  • Flatten 层用于展开张量,input_shape 定义输入形状为 28x28 的图像,展开后为 28*28 的张量。
  • Dense 层为全连接层,输出有 128 个神经元,激活函数使用 relu。
  • Dropout 层使用 0.2 的失活率。
  • 再接一个全连接层,激活函数使用 softmax,得到对各个类别预测的概率。
  • 优化器选择 Adam 优化器。
  • 损失函数使用 sparse_categorical_crossentropy,还有一个损失函数是 categorical_crossentropy,两者的区别在于输入的真实标签的形式,sparse_categorical 输入的是整形的标签,例如 [1, 2, 3, 4],categorical 输入的是 one-hot 编码的标签。

然后训练评估模型

model.fit(x_train, y_train, epochs=5)model.evaluate(x_test, y_test) Epoch 1/5 60000/60000 [==============================] - 8s 137us/sample - loss: 0.2946 - accuracy: 0.9139 Epoch 2/5 60000/60000 [==============================] - 7s 124us/sample - loss: 0.1423 - accuracy: 0.9578 Epoch 3/5 60000/60000 [==============================] - 8s 131us/sample - loss: 0.1059 - accuracy: 0.9677 Epoch 4/5 60000/60000 [==============================] - 8s 127us/sample - loss: 0.0872 - accuracy: 0.9729 Epoch 5/5 60000/60000 [==============================] - 7s 125us/sample - loss: 0.0739 - accuracy: 0.9768 10000/10000 [==============================] - 1s 87us/sample - loss: 0.0747 - accuracy: 0.9783 [0.07466811984921806, 0.9783]

fit 用于训练模型,对训练数据遍历一次为一个 epoch,这里遍历 5 次。
evaluate 用于评估模型,返回的数值分别是损失和指标。

可以看到,我们训练的图像分类器在 MNIST 上有接近 98% 的准确率。

总结

以上是生活随笔为你收集整理的TensorFlow 2.0 极简教程,不到 20 行代码带你入门的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。