如何使用Keras在模型的训练、评估和推断中?

如何使用Keras在模型的训练、评估和推断中?

Tensorflow是由谷歌提供的机器学习框架。它是一个开源框架,结合Python使用来实现算法、深度学习应用等等。它被用于研究和生产用途。它具有优化技术,可以帮助快速执行复杂的数学运算。

可以使用以下代码在Windows上安装“tensorflow”包 −

pip install tensorflow

Keras是作为项目ONEIROS(开放式神经-电子智能机器人操作系统)的研究部分开发的。Keras是一个深度学习API,它是用Python编写的,它是一个高级API,具有有助于解决机器学习问题的生产性接口。

它具有很高的可伸缩性,并具有跨平台能力。这意味着Keras可以在TPU或GPU集群上运行。Keras模型也可以导出到Web浏览器或移动电话中运行。

Keras已经存在于Tensorflow包中。可以使用以下代码访问它。

import tensorflow
from tensorflow import keras

Keras功能API有助于创建比使用顺序API创建的模型更加灵活的模型。功能API可以处理具有非线性拓扑的模型,可以共享层并处理多个输入和输出。深度学习模型通常是一个包含多个层的有向无环图(DAG)。功能API有助于构建层的图形。

我们使用Google Colaboratory来运行下面的代码。Google Colab或Colaboratory可以通过浏览器运行Python代码,并需要零配置和免费访问GPU(图形处理单位)。Colaboratory是在Jupyter Notebook的基础上构建的。以下是代码段 −

更多Python相关文章,请阅读:Python 教程

例子

print("加载MNIST数据")
print("将数据拆分为训练和测试数据")
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
print("重塑数据以获得更好的训练效果")
x_train = x_train.reshape(60000, 784).astype("float32") / 255
x_test = x_test.reshape(10000, 784).astype("float32") / 255
print("编译模型")
model.compile(
   loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
   optimizer=keras.optimizers.RMSprop(),
   metrics=["accuracy"],
)
print("将数据拟合到模型")
history = model.fit(x_train, y_train, batch_size=64, epochs=2, validation_split=0.2)
test_scores = model.evaluate(x_test, y_test, verbose=2)
print("模型相关损失:", test_scores[0])
print("模型的准确性:", test_scores[1])

代码来源 − https://www.tensorflow.org/guide/keras/functional

输出

加载MNIST数据
将数据拆分为训练和测试数据
重塑数据以获得更好的训练效果
编译模型
将数据拟合到模型
Epoch 1/2
750/750 [==============================] - 3s 3ms/step - loss: 0.5768 - accuracy: 0.8394 -
val_loss: 0.2015 - val_accuracy: 0.9405
Epoch 2/2
750/750 [==============================] - 2s 3ms/step - loss: 0.1720 - accuracy: 0.9495 -
val_loss: 0.1462 - val_accuracy: 0.9580
313/313 - 0s - loss: 0.1433 - accuracy: 0.9584
模型的损失: 0.14328785240650177
模型的准确性: 0.9584000110626221

解释

  • 将输入数据(MNIST数据)加载到环境中。

  • 将数据分成训练集和测试集。

  • 重塑数据,以提高其精度。

  • 构建并编译模型。

  • 将其拟合到训练数据。

  • 在控制台上显示与训练相关的准确性和损失。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程