介绍
在这篇文章中,我们将使用深度学习构建植物病害检测模型。我们将使用来自 Kaggle 的新植物病害数据集数据集。
数据集
该数据集包含大约 87,000 张健康和患病植物叶子的图像。该数据集包含 38 种不同类别的植物叶子。总数据集分为 80/20 比例的训练集和验证集,保留目录结构。还创建了一个新目录用于测试模型。
导入库
import pandas as pd
import numpy as np
import tensorflow as tf
from tensorflow.keras import models, layers
import matplotlib.pyplot as plt
设置超参数
我们将为模型设置超参数。我们将使用以下超参数:
image_size = 256
batch_size =32
channels = 3
epoches = 12
加载数据集
为了加载数据集,我们将使用该image_dataset_from_directory函数。此函数采用数据集目录的路径并返回一个tf.data.Dataset对象。该tf.data.Dataset对象是为 TensorFlow 模型构建输入管道的强大工具。它使我们能够轻松地从磁盘加载数据、应用转换并将数据输入到我们的模型中。
dataset = tf.keras.preprocessing.image_dataset_from_directory(
'../input/new-plant-diseases-dataset/',
shuffle = True,
image_size = (image_size, image_size),
batch_size = batch_size
)
存储和打印类名
class_names = dataset.class_names
print(class_names)
可视化图像
plt.figure(figsize=(10, 10))
for image_batch, label_batch in dataset.take(1):
for i in range(12):
ax = plt.subplot(3, 4, i+1)
plt.imshow(image_batch[i].numpy().astype("uint8"))
plt