Press "Enter" to skip to content

用TensorFlow分6步构建神经网络:初学者

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

在本教程中,我们将使用tf.keras构建并训练一个简单的神经网络,使用序列模型从Fashion_mnist数据集中对服装图像进行分类,例如运动鞋和衬衫。您将学习如何定义和训练一个模型,该模型即使在没有重大优化的情况下,也可以在几行代码中以90%左右的准确率对图像进行分类。完整的代码在本教程的末尾给出。

 

以下是我们将遵循的6个步骤:

 

我希望你准备好了。让我们开始吧,不要再费劲了。

 

步骤1:导入依赖项

 

import tensorflow as tf

 

步骤2:导入数据集

 

让我们导入将在本教程中使用的Fashion_mnist数据集。FORMING_MNIST数据集由70,000个灰度图像组成,分为十个类别,每个类别的尺寸为28×28像素。

 

fashion_mnist = tf.keras.datasets.fashion_mnist.load_data()

 

当标签在MNIST数据集中等于5时,它表示图像反映的是手写数字5。然而,对于FORMAND_MNIST,我们需要类名列表才能知道我们正在处理的是什幺。

 

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

 

步骤3:对数据进行预处理

 

图像数据中的每个像素具有介于0和255之间的整数值。这些值必须缩放到范围[0,1],模型才能有效执行。为简单起见,我们将通过将像素值除以255.0(这也会将它们转换为浮点数)来将像素值缩小到0-1范围

 

train_images = train_images/255.0

 

步骤4:构建模型

 

在编译模型之前,必须配置神经网络层。

 

让我们使用顺序模型体系结构配置神经网络层。

 

model = tf.keras.Sequential([

 

现在,我们使用ADAM优化器和SparseCategoricalCrossenropy()损失函数编译模型。

 

model.compile(optimizer='adam', loss = tf.keras.losses.SparseCategoricalCrossentropy(), metrics=['accuracy'])

 

步骤5:训练和评估模型

 

模型现已准备就绪,可以进行培训。为此,我们只需要使用它的fit()方法。VALIDATION_SPLIT参数与输入特征(TRAIN_IMAGE)、目标标签(TRAIN_LABEs)和要训练的历元数一起传递。在这种情况下,将使用10%的训练数据作为验证数据。

 

model.fit(train_images, train_labels, validation_split = 0.1, epochs=10, verbose = 2)

 

在每个时期结束时,Kera将计算验证集上的损失和额外指标,这对于确定模型的执行情况很有用。如果训练集的性能明显好于验证集的性能,则您的模型可能过度适合训练集。

 

一旦您对模型的验证准确性感到满意,就应该在测试集上评估模型以估计泛化误差,然后再将其部署到生产环境中。您可以使用EVALUATE()方法轻松地实现这一点。

 

test_loss, test_acc = model.evaluate(test_images, test_labels, verbose = 2)

 

第六步:做预测

 

然后可以使用模型的recast()方法对新实例进行预测。我们将只使用测试集中的前三个实例(TEST_IMAGES),因为我们没有任何新实例。

 

x_new = test_images[:3]

 

如您所见,对于每个实例,该模型为每个类估计一个概率,范围从0到9。例如,对于第一幅图像,该模型预测了99%的类别9(踝靴)和1%的类别7(运动鞋)。

 

如果您只关心概率最高的类,那幺您可以改用np.argmax(model.recast(X_New),axis=-1)。

 

y_pred = np.argmax(model.predict(x_new), axis=-1)

 

在这里,分类器正确地对所有三幅图像进行了分类。

 

plt.figure(figsize=(10,10))

 

结论

 

我们已经建立并训练了一个简单的神经工作模型,用于从时尚数据集中对图像服装进行分类。本教程的目标是用简单的代码概述TensorFlow项目。

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注