CNN(练习数据集)
- 1.导包:
- 2.导入数据集:
- 3. 使用image_dataset_from_directory()将数据加载tf.data.Dataset中:
- 4. 查看数据集中的一部分图像,以及它们对应的标签:
- 5.迭代数据集 train_ds,以便查看第一批图像和标签的形状:
- 6.使用TensorFlow的ImageDataGenerator类来创建一个数据增强的对象:
- 7.将数据集缓存到内存中,加快速度:
- 8. 通过卷积层和池化层提取特征,再通过全连接层进行分类:
- 9.打印网络结构:
- 10.设置优化器,定义了训练轮次和批量大小:
- 11.训练数据集:
- 12.画出图像:
- 13.评估您的模型在验证数据集的性能:
- 14.输出在验证集上的预测结果和真实值的对比:
- 15.输出可视化报表:
- 在网上寻找一个新的数据集,自己进行训练
1.导包:
import pandas as pd
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from tensorflow.keras.optimizers import Adam
from sklearn.model_selection import train_test_split
import numpy as np
from sklearn.preprocessing import LabelBinarizer
import matplotlib.pyplot as plt
import pickle
import pathlib
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers, models
输出结果:
2.导入数据集:
# 定义超参数
data_dir = "D:\JUANJI"
data_dir = pathlib.Path(data_dir)
image_count = len(list(data_dir.glob('*/*.jpg')))
print("图片总数为:", image_count)
batch_size = 30
img_height = 180
img_width = 180
输出结果:
3. 使用image_dataset_from_directory()将数据加载tf.data.Dataset中:
# 使用image_dataset_from_directory()将数据加载到tf.data.Dataset中
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
data_dir,
validation_split=0.2, # 验证集0.2
subset="training",
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="validation",
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
输出结果:
4. 查看数据集中的一部分图像,以及它们对应的标签:
class_names = train_ds.class_names
print(class_names)
# 可视化