1. 磐创AI-开放猫官方网站首页
  2. Medium

分心驾驶第三天 - 建模第一部分


欢迎回来!在上一篇博客中,我们对数据进行了预处理,使其成为我们的模型能够理解的形式–数字。在这个博客里,我会写一些我做模特的步骤。last blog

迁移学习与移动网络

迁移学习是一个过程,在这个过程中,我们使用预先训练的模型并对其进行修改以满足我们的需要。

迁移学习的优势:

  • 需要的数据相对较少
  • 预定义的权重有助于提高精度
  • 更容易、更快地进行培训

修改我们的标签

当我试图训练我的MobileNet模型时,我遇到了一个意外的错误,模型体系结构要求我们的标签采用数字的形式,而不是“c0”、“c1”等等。

我没有更改整个数据预处理步骤,而是删除了每个标签的第一个字符,并将剩余的字符转换为整数。

前面的代码是:Label=Cut[:Ind]这将返回“c0”。现在,它返回0。

经过这个小小的改变,我的模特训练正常了。

调整我们的图像大小

我还忘了调整图像的大小,从(480,640,3)调整到(224,224,3)。我在process_image()函数中通过添加tf.image.resize(image,(224,224))对此进行了更改

回调

回调是一种特殊函数,用于监视模型的训练,并以某种方式更改或记录。

我使用的回调是EarlyStopping回调。此回调监视模型在验证拆分上的准确性,如果模型的进度在某个“耐心”之后停止,则会停止训练。这有助于模型避免过度拟合(机器学习模式太好,不能泛化),因为它会在模型过度拟合之前停止模型。

构建和培训模型

正如我之前提到的,我正在使用MobileNet进行我的项目。我使用了这个项目的默认权重,即ImageNet,并对其进行了50个纪元的训练。我使用CategoricalCrossenropy作为我的损失函数(我们的模型有多么错误),使用Adam作为我的优化器(一种告诉模型如何改进的算法)。我的学习率是0.0023(亚当的一个参数;0.0023是一个任意数字)。我还在训练时使用了EarlyStopping回调,以防止过度适应。

这位模特已经训练了14个纪元,我的回叫使它停了下来。对训练数据的最终准确率为51.22%,对验证数据的最终准确率为52.78%。

结论

我今天不能做很多事情,因为模型培训需要很多时间(部分原因是我忘了使用GPU)。明天我不能做任何事情,但是后天,我会通过调整一些超参数来改进这个模型。

今天就到这里吧。再见!

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/26/%e5%88%86%e5%bf%83%e9%a9%be%e9%a9%b6%e7%ac%ac%e4%b8%89%e5%a4%a9%e2%80%8a-%e2%80%8a%e5%bb%ba%e6%a8%a1%e7%ac%ac%e4%b8%80%e9%83%a8%e5%88%86/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息