训练模型
1.导入必要的库
pandas as pd
: Pandas是一个强大的数据分析和处理库,它提供了数据结构(如DataFrame)和工具,用于数据操作和分析。
tensorflow.keras.preprocessing.image import ImageDataGenerator
: ImageDataGenerator是Keras的一部分,它用于图像数据的预处理和增强,例如,随机裁剪、旋转、缩放等。
tensorflow.keras.models import Sequential
: Sequential模型是Keras中的一种模型,它允许您顺序地堆叠层。
tensorflow.keras.layers
: 包含了Keras中所有的层类型,如Conv2D、MaxPooling2D、Flatten、Dense等。
tensorflow.keras.optimizers
: 包含了Keras中所有的优化器类型,如Adam、SGD等。
sklearn.model_selection import train_test_split
: train_test_split是Scikit-Learn的一部分,它用于将数据集分割为训练集和测试集。
numpy as np
: NumPy是一个用于科学计算的库,它提供了高效的数组处理能力,对于图像处理等任务非常有用。
sklearn.preprocessing import LabelBinarizer
: LabelBinarizer是Scikit-Learn的一部分,它用于将类别标签转换为二进制数组。
matplotlib.pyplot as plt
: Matplotlib是一个绘图库,pyplot是其中的一个模块,它提供了一个类似于MATLAB的绘图框架。
import pickle
: pickle是Python的标准库,它用于序列化Python对象,以便将它们保存到文件或从文件中加载。
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
2.定义超参数
INIT_LR = 0.01
EPOCHS = 30
BS = 32
3.读取训练和测试标签CSV文件
train_labels.csv和test_labels.csv在资源中。
# 读取训练标签CSV文件
train_labels_filename = 'train_labels.csv'
train_labels_df = pd.read_csv(train_labels_filename)
# 读取测试标签CSV文件
test_labels_filename = 'test_labels.csv'
test_labels_df = pd.read_csv(test_labels_filename)
4.确保标签是字符串类型
train_labels_df[‘label’] = train_labels_df[‘label’].astype(str):
train_labels_df['label']
:这是train_labels_df DataFrame中名为label的列。
.astype(str)
:这是Pandas中的一个方法,用于将列的数据类型转换为字符串类型。
test_labels_df[‘label’] = test_labels_df[‘label’].astype(str):
test_labels_df['label']
:这是test_labels_df DataFrame中名为label的列。
.astype(str)
:这是Pandas中的一个方法,用于将列的数据类型转换为字符串类型。
train_labels_df['label']