深度学习与MATLAB:转移学习MATLAB的10行代码
从系列:深度学习与MATLAB
嗨。我的名字是乔Hicklin。我是MathWorks资深开发人员。我将向您展示如何做转移学习。学习可能是一种非常实用的方法转移到深度学习适用于你的问题。
转移学习,你先前存在的神经网络,略有修改它,然后再培训你的照片。这可以产生优秀的结果,是远远比从头开始设计一个网络和训练自己。
在我的工作中,我需要能够区分汉堡包和热狗和蛋糕和苹果派和冰激凌。据我所知,没有网络,会为我这样做。所以我要从现有网络开始,亚历克斯。亚历克斯网络分类训练1000种不同的图像,这是训练已经在超过一百万个图像。
所以我在这里。我要开始加载亚历克斯,我将从中获得层所以我能看到的部分。如果你向下看,你可以看到亚历克斯净25层。大多数层做有用的图像处理事情会工作为我的系统以及亚历克斯净的。我要把这些孤独。
但23层有1000个神经元,因为亚历克斯净分类1000不同的图像。我只会做五个不同类型的图片,所以我要用网络代替,只有5个图片。最后,我将替换输出层。亚历克斯的最后一层净学会了亚历克斯的分类,这1000个不同的类。我不希望这样。我要把它换成一个空层,是我要学。
现在我的网络设置。是时候来处理数据。你不需要一百万的图片像亚历克斯净训练,但是你需要1000人取得好结果。我做了一个文件夹有5个文件夹,我为每个类之一。有一个叫苹果派,一个叫蛋糕,等等。里面每一个文件夹是1000图片适当的话题。
我的这些图片的大小亚历克斯净预计,227年到227年,而且你必须这样做。如果你安排这样的数据,您可以使用MATLAB的图像数据存储对象,因为它知道结构,它将会被加载的所有图像,并作出适当的标签。这就是我在这里干什么。
一旦我有我的图片,我需要分开成两组。他们中的大多数我使用培训,但是我可以节省一些以后出来测试的准确性。让我们这样做。现在我我所有集训练网络。我要设置一些网络参数。我选择参数,将工作做好。
如果你喜欢你可以改变这些,看看会发生什么。然后我准备训练网络。开始的。这是需要五六分钟来完成其工作。我有一个非常强大的GPU在我的电脑,所以它很快速。你的情况可能不同。好了,完成网络的训练。现在我们要做的第一件事就是看到它是多么准确。
我们要让网络分类测试图像,图像我们离开我们的训练集,然后我们将看到分数的权利。我们是84%准确的。五分钟的工作不错。现在让我们尝试摄像头在一些真正的食物。我刚好在我的桌子上有一些食物。有汉堡包、苹果派、热狗、冰淇淋。
所以总的来说,它工作得很好,很健壮很多。不同的角度等等。所以我们去。这工作比我预期的要好,真的。我简化了这个演示多达我可以,但在下载,我们会包括一个第二个文件,会有更多的评论,它会有一些代码来处理可能出现的一些情况。
我向您展示了如何做分类转移学习,但是如果你需要真实的号码,你也可以做回归转移学习。嗯,我希望我已经向您展示了足以让你感兴趣转移学习,所以抓住一些零食和试一试。
下载代码和文件
了解更多
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。