Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 选择要训练的层并在Keras中训练的初始模型中添加跳过连接_Python_Tensorflow_Keras_Conv Neural Network_Transfer Learning - Fatal编程技术网

Python 选择要训练的层并在Keras中训练的初始模型中添加跳过连接

Python 选择要训练的层并在Keras中训练的初始模型中添加跳过连接,python,tensorflow,keras,conv-neural-network,transfer-learning,Python,Tensorflow,Keras,Conv Neural Network,Transfer Learning,我想用CT灰度图像训练一个模型,例如: 对于某些类别的疾病,我的训练集是有限的,例如2000个阳性和98000个阴性 我正在考虑使用迁移学习来避免过度拟合并提高模型的有效性,但我也意识到我应该对模型进行微调,因为我为模型提供的图像类型与我将使用的初始模型经过培训的图像类型非常不同 我的问题是,我不确定我应该固定多少层,多少层是可训练的 然后我想使用跳过连接应用随机深度,让网络了解真正需要多少层 因此,我正在考虑实现以下体系结构 也就是说,我将在Keras(Tensorflow 2.0)附带的

我想用CT灰度图像训练一个模型,例如:

对于某些类别的疾病,我的训练集是有限的,例如2000个阳性和98000个阴性

我正在考虑使用迁移学习来避免过度拟合并提高模型的有效性,但我也意识到我应该对模型进行微调,因为我为模型提供的图像类型与我将使用的初始模型经过培训的图像类型非常不同

我的问题是,我不确定我应该固定多少层,多少层是可训练的

然后我想使用跳过连接应用随机深度,让网络了解真正需要多少层

因此,我正在考虑实现以下体系结构

也就是说,我将在Keras(Tensorflow 2.0)附带的预训练初始模型各层之间添加跳过连接

我欢迎就如何落实这些想法提出建议。特别是如何将网络分成三部分,第一部分保持不变(不可训练),并在添加跳过连接后训练第二部分。应在Keras中实施

  • 迁移学习确实是正确的方法。这允许您使用经过训练的权重来处理DL图像处理的“通用”任务,如形状识别、边缘检测等,并且,从某种意义上说,保存数据(输入和标签),以便为您的特定任务重新装备现有的神经网络

  • 根据经验,权重越接近输入,它们的功能就越通用,你就越不想重新训练它们。相反,权重越接近输出,它们的功能就越具体,需要的再培训也越多

  • 我建议在重新训练现有权重之前先训练端点分类器。1-2个具有您喜爱的激活功能的完全连接层(阅读:
    density
    )+1个具有
    softmax
    激活功能的完全连接层(因为我们希望输出是每种疾病的预测概率)可能会起到作用。当培训此(端点分类器)时,请确保冻结所有其他层(或使用瓶颈功能-请参见下面链接中的操作)

  • 只有这样,您才应该重新训练现有权重-这称为微调。我建议解冻第一个inception*,然后允许它(以及最后一步中已经训练过的端点分类器!)重新训练。然后可能会解冻下一个初始模块,并允许它也进行训练(同样,同时也允许第一个初始模块和新的端点分类器进行再训练。在重新训练段时,始终允许下游权重也进行再训练)

  • 请注意,微调应使用缓慢的训练速率

  • 据我所知,跳过连接不会“让网络了解真正需要多少层”。它们大多允许规避梯度递减问题。“跳过”层不会变成“可选”,它们将参与生成输出。而且,由于所使用的权重没有考虑通过跳过连接添加的输入,我相信这会使权重的训练变得无关紧要,需要对整个网络进行再训练,从而防止转移学习

    这将是一个有趣的实验,但尝试它将自担风险

  • 如果你真的想要跳过连接,我建议你使用一个已经有了它们的模型(因此它的权重被调整),比如ResNet

  • 请查看此链接,了解有关迁移学习、瓶颈功能和微调的更多想法。和增强,而你的


    *我指的是输出规定中的第一个,即图像中最高的一个。

    以下是一些有用的建议。这对考虑帮助的读者和你一样重要。(1) 你可能问的问题太多了。两天八篇帖子意味着你在跳到下一件事情之前,不会等待一件事情的答案。这将进一步向我表明,你没有进行必要的研究。(2) 您正在添加关于感谢帮助的闲聊材料,尽管许多编辑已经从您以前的帖子中删除了这些内容。在这里,技术写作是一种期望。元参考可根据要求提供。