猫的十二分类

这篇博客介绍了猫的十二分类任务,包括数据集、训练与测试集的划分,以及预测结果提交的要求。作者分享了实验过程中的挑战,如图片尺寸不一致,通道差异等问题,并尝试了多种预处理方法和卷积神经网络模型,如CNN、ResNet101,最终版本6的模型达到60%的准确率。
摘要由CSDN通过智能技术生成

介绍:猫的十二分类

  • (1)任务描述
    利用训练的模型来预测数据所属的类别。
  • (2)数据说明 本数据集包含 12 种类的猫的图片。
    整个数据将被分为训练集与测试集。在训练数据中,我们提供彩色的图片.
    • 训练集:在训练集中,我们将提供高清彩色图片以及图片所属的分类。
    • 测试集:在测试数据集中,我们仅仅提供彩色图片。
  • (3)提交答案 考试提交,需要提交模型代码项目版本和结果文件。结果文件为 CSV 文件格式,命 名为 result.csv,文件内的字段需要按照指定格式写入。
    文件格式:cat_12_test/WMgOhwZzacY023lCusqnBxIdibpkT5GP.jpg 0
    其中,前半部分为【图片路径】,后半部分为【类别编号】。
    提交的预测结果要与我们提供的 label 图像名字与格式 保持完全一致,否则上传 无法通过格式检查。

说明

提交文件样例为:krEVI3eSjO9FMKybdhLQovCYnG2DwlaR.jpg,0

答辩

  • 每个小组采用 PPT 讲解 + 程序演示的形式进行答辩
  • 每个小组答辩时间不超过 10 分钟
  • 学生讲解和演示总时长不超过 6 分钟;
  • 评审在线提问问答不超过 4 分钟

提交材料

  • 一份三级项目报告、一份答辩 PPT、一份完整的项目
  • 每个文件的命名格式:班级-小组-选题,如:17-5-第 1 组-人流密度估计。

遇到的问题说明

  • 每张图片的大小不一致图片的通道不一样࿰
  • 0
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
为了实现二类分类,可以使用Python和深度学习框架TensorFlow。 首先,需要收集带有标签的的图像数据集。可以使用公共的数据集,例如ImageNet,也可以自己手动收集和标记数据集。 其次,需要将数据集分为训练集、验证集和测试集。训练集用于训练模型,验证集用于调整模型超参数和防止过拟合,测试集用于评估模型效果。 接下来,需要对图像数据进行预处理,例如缩放、裁剪、旋转、翻转等。这有助于提高模型的准确性和鲁棒性。 然后,可以使用卷积神经网络(CNN)来构建模型。可以使用现有的CNN模型,例如ResNet、VGG等,也可以自己构建CNN模型。 最后,可以使用训练集对模型进行训练,并使用验证集进行调整和评估。最终,可以使用测试集对模型进行最终评估。 以下是一个简单的Python代码示例,用于实现二类分类: ```python import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator # 定义数据生成器 train_datagen = ImageDataGenerator(rescale=1./255) val_datagen = ImageDataGenerator(rescale=1./255) test_datagen = ImageDataGenerator(rescale=1./255) # 加载数据集 train_dataset = train_datagen.flow_from_directory( 'train/', target_size=(180, 180), batch_size=32, class_mode='categorical') val_dataset = val_datagen.flow_from_directory( 'val/', target_size=(180, 180), batch_size=32, class_mode='categorical') test_dataset = test_datagen.flow_from_directory( 'test/', target_size=(180, 180), batch_size=32, class_mode='categorical') # 定义模型 model = tf.keras.Sequential([ layers.Conv2D(32, (3, 3), activation='relu', input_shape=(180, 180, 3)), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(128, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(128, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Flatten(), layers.Dense(512, activation='relu'), layers.Dense(12, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(train_dataset, epochs=10, validation_data=val_dataset) # 评估模型 test_loss, test_acc = model.evaluate(test_dataset) print('Test accuracy:', test_acc) ``` 其中,代码中的`train/`、`val/`和`test/`目录分别包含训练集、验证集和测试集的图像数据集。模型使用了包含四个卷积层和两个全连接层的CNN结构。在训练期间,使用了Adam优化器和交叉熵损失函数。模型在训练集上进行了10个时期的训练,并在测试集上进行了评估。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值