美文网首页
Matlab深度学习基础笔记-3

Matlab深度学习基础笔记-3

作者: SuperZ2017 | 来源:发表于2018-05-20 10:07 被阅读0次

    笔记来源于matlab官网,不足之处还请提出.。


    2 transfer learning

    要执行迁移学习,您需要创建三个组件:

    1. 代表网络体系结构的一系列图层。 对于迁移学习,这是通过修改先前存在的网络(如AlexNet)创建的。

    2. 已知标签的图像可用作训练数据。 这通常作为数据存储提供。

    3. 包含控制训练算法行为的选项的变量。

    这三个组件作为trainNetwork功能的输入提供,它将经过训练的网络作为输出返回。

    您应该测试新接受训练的网络的性能。 如果不够,通常你应该尝试调整一些训练选项并重新训练。


    2.1数据准备


    训练所要的标签可以存储在Labels属性中,默认为空,通过指定‘LabelSource'选项自动确认文件夹名称中的标签。重新创建数据存储区flwrds到存储在变量中的文件夹路径的子文件夹中的所有图像pathToImages(为指定的文件夹,已经存在工作区中),使用文件夹名称作为图像标签:

    flwrds = imageDatastore(pathToImages,'IncludeSubfolders',true,'LabelSource','foldernames')


    通过Labels属性来提取标签:

                                                  flowernames = flwrds.Labels;



    可以使用splitEachLabel函数将数据存储区中的图像分成两个单独的数据存储区。

                                           [ds1 ,ds2 ] = splitEachLabel(imds , p);

    比例p(0到1之间的一个值)表示imds应该包含来自其中的每个标签的图像的比例ds1,剩下的文件被分配给ds2,如将flwrds中60%分配给flwrTrain,剩下个40%分配给flwrTest:

                                     [flwrTrain , flwrTest] = splitEachLabel(flwrds , 0.6);


    splictEachLabel默认是按顺序划分的,可以添加选项‘randomized'来进行随机划分:

                          [flwrTrain,flwrTest] = splitEachLabel(flwrds,0.8,'randomized');


    当p值为0到1时,它被解释为一个比例。然后分割图像,以便每个标签按比例分割。您也可以指定要从每个要分配的标签中获取的确切数量的文件ds1:

                                            [ds1 , ds2 ] =splitEachLabel(imds , n);

    这确保了每个标签都ds1具有n图像,即使类别不全都包含相同数量的图像。

    相关文章

      网友评论

          本文标题:Matlab深度学习基础笔记-3

          本文链接:https://www.haomeiwen.com/subject/exnadftx.html