一、引言

        机器学习是一种人工智能领域的技术,它旨在让计算机通过学习数据和模式,而不是明确地进行编程来完成任务。机器学习分为监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Learning)四种。而其中猫狗识别分类问题是监督学习中极具代表性的项目案例。

那什么是监督学习呢?
定义:根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。在监督学习中训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。


简单理解:可以把监督学习理解为我们教机器如何做事情。

二、资源链接

通过网盘分享的文件:项目:猫狗分类.7z
链接: https://pan.baidu.com/s/1di8YwU9Wfw_CDgQj4oiwbQ?pwd=9x6w 提取码: 9x6w         

三、使用流程

1.配置pycharm和Anaconda,并在其中配置tensorflow2.+和较新keras版本。

注意:一定要新一点的版本,要不然很可能不兼容而报错。

2.下载资源并解压,将train文件移至:项目:猫狗分类\代码\AlexNet-Keras-master\data\image下。

3.pycharm打开该项目,首先运行dataset_process.py,将图片在data里生成TXT文序列,以便后续使用。

4.检查一下utils.py(内置了一些函数)和AlexNet.py(卷积神经网络)能不能运行。

5.启动这个train.py,大概等待1小时左右,开始训练数据集。结束后会在logs中生成模型文件,如下图所示。

6.打开predict.py,然后将下面代码里换成自己生成的模型文件。

    model.load_weights('./logs/last1.keras')  # 建议后续保存为.keras格式

注意:loss代表训练损失:

  • 定义: 训练损失是模型在训练集上的误差,反映了模型对训练数据的拟合程度。
  • 意义:
    • 如果训练损失较高(如大于 1),说明模型尚未很好地拟合训练数据。
    • 如果训练损失较低(接近 0),说明模型已经很好地拟合了训练数据。

val_loss(Validation Loss)代表验证损失:

  • 定义: 验证损失是模型在验证集上的误差,反映了模型的泛化能力。
  • 意义:
    • 如果验证损失接近训练损失,说明模型具有良好的泛化能力。
    • 如果验证损失远高于训练损失,可能表明模型出现了过拟合 ,即模型在训练集上表现很好,但在新数据上表现较差。

因此我要尽量选择两者都小的模型文件。

6.运行,等待判断结果。

四、结语

猫狗识别作为监督学习的经典案例,不仅帮助我们掌握了机器学习的基本原理和技术实现,还为我们打开了通向更广阔领域的大门。从数据预处理到模型训练,再到性能优化,每一步都体现了机器学习的魅力与挑战。

通过这一过程,我们深刻认识到,监督学习不仅仅是一种算法或工具,更是一种解决问题的思维方式。无论是分类还是回归任务,监督学习都能为现实世界的问题提供高效的解决方案。

未来,随着技术的不断发展,猫狗识别这样的基础任务将被赋予更多的可能性。例如,结合无监督学习或强化学习,我们可以进一步提升模型的泛化能力;利用边缘计算和硬件加速,我们可以实现实时的智能识别系统。

希望通过对猫狗识别的学习与实践,您能够感受到人工智能的力量,并将其应用到更多有意义的场景中。正如猫狗识别教会我们的那样,每一个小的进步,都是通向更大成就的基石。让我们继续探索,不断前行!

我的代表也存在很多警告和可以优化的地方,后续会不断改进。希望我的文章对你能有帮助,也希望你有任何问题或者改进可以跟我留言交流,让我们一起共同进步。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐