Machine learning 微调具有较大输入大小的模型

Machine learning 微调具有较大输入大小的模型,machine-learning,keras,neural-network,deep-learning,computer-vision,Machine Learning,Keras,Neural Network,Deep Learning,Computer Vision,我想知道对输入量较大的模型进行微调是否有意义?理想情况下,我希望拥有的财产: 微调:指通过预训练重新使用重量 较大的输入大小:在输入模型之前不向下采样。也许你的步幅更大 具体地说,我正试图用我的特定标签集对Keras中的InceptionV3进行微调。我想要更大的数据量,因为我希望模型能够隐式地学习一些重要的字符。对于InceptionV3默认大小(299x299),我觉得这是不可能的 但这听起来像是我必须改变我正在使用的特定模型(比如通过修改中的特定层),然后重新使用预先训练好的权重是没有意义

我想知道对输入量较大的模型进行微调是否有意义?理想情况下,我希望拥有的财产:

  • 微调:指通过预训练重新使用重量
  • 较大的输入大小:在输入模型之前不向下采样。也许你的步幅更大 具体地说,我正试图用我的特定标签集对Keras中的InceptionV3进行微调。我想要更大的数据量,因为我希望模型能够隐式地学习一些重要的字符。对于InceptionV3默认大小(
    299x299
    ),我觉得这是不可能的


    但这听起来像是我必须改变我正在使用的特定模型(比如通过修改中的特定层),然后重新使用预先训练好的权重是没有意义的?

    如果你想微调分类模型,通常你会删除一些顶层,作为分类器,然后添加你自己的层。这与微调Inception_V3模型是一样的:您可以删除顶层并添加您自己的分类器,使其具有所需的单元数(即数据集中的类数)。例如:

    来自keras.applications.inception\u v3导入接收v3
    #假设我们的图像大小为(1000,1000,3)
    inc_v3=InceptionV3(include_top=False,input_shape=(1000,1000,3),池)
    #将所需图层添加到顶部
    #我们只添加了一层,只是为了说明
    #但您可以添加任意数量的层
    输出=密集(num_类,activation='softmax')(inc_v3.output)
    #构建新模型
    模型=模型(inc_v3.input,out)
    
    但是,请注意,首先需要冻结所有基础层(即Inception_V3模型的层)以进行微调。此外,除了在顶部添加池层(即
    pooling='avg'
    ),您还可以使用其他替代方法,例如使用
    Flatten


    此外,我建议您阅读相关的官方Keras教程:(第二节和第三节主要与此相关)。

    谢谢您的替换。我理解用我自己的分类头替换顶层的必要性。然而,似乎要处理较大的输入大小,您只需指定较大的输入形状?比如说,不需要修改InceptionV3中的前几层(接近输入层)?这是我不确定的部分。@clwen不,不需要,因为《盗梦空间》的基础由卷积、池和批处理层组成,这些层不依赖于输入图像的宽度和高度。