如何使用Tensorflow和预训练模型以及Python进行数据评估和预测?


Tensorflow 和预训练模型可以使用“evaluate”和“predict”方法进行数据评估和预测。首先将输入图像批次展平。对模型应用 sigmoid 函数,以便它返回 logit 值。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 一起创建神经网络?

包含至少一层卷积层的神经网络称为卷积神经网络。我们可以使用卷积神经网络构建学习模型。

我们将了解如何借助来自预训练网络的迁移学习对猫和狗的图像进行分类。图像分类中迁移学习背后的直觉是,如果一个模型在大型通用数据集上进行训练,则此模型可以有效地用作视觉世界的通用模型。它将学习特征图,这意味着用户不必从头开始在大型数据集上训练大型模型。

阅读更多: 如何预训练自定义模型?

我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助通过浏览器运行 Python 代码,无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 是在 Jupyter Notebook 之上构建的。

示例

print("Evaluation and prediction")
loss, accuracy = model.evaluate(test_dataset)
print('Test accuracy is :', accuracy)
print("The batch of image from test set is retrieved")
image_batch, label_batch = test_dataset.as_numpy_iterator().next()
predictions = model.predict_on_batch(image_batch).flatten()
print("The sigmoid function is applied on the model, it returns logits")
predictions = tf.nn.sigmoid(predictions)
predictions = tf.where(predictions < 0.5, 0, 1)
print('Predictions are:\n', predictions.numpy())
print('Labels are:\n', label_batch)

代码来源 −https://tensorflowcn.cn/tutorials/images/transfer_learning

输出

Evaluation and prediction
6/6 [==============================] - 3s 516ms/step - loss: 0.0276 - accuracy: 0.9844
Test accuracy is : 0.984375
The batch of image from test set is retrieved
The sigmoid function is applied on the model, it returns logits
Predictions are:
[1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1]
Labels are:
[1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1]

解释

  • 现在可以使用该模型来预测和评估数据。
  • 当图像作为输入传递时,会进行预测。
  • 预测必须是图像是否为狗或猫。

更新于: 2021年2月25日

322 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告