问题标签 [fine-tune]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
23 浏览

python - 如何冻结图层并微调自定义连体网络

我有以下连体网络(基于 Xception),其组成如下:

要构建连体网络,我只需要调用以下代码:

我已经在给定的数据集中训练了这个模型,我现在要做的就是再次构建模型,加载以前的权重,冻结层(除了具有 48 个神经元的 Dense 层)并训练 Dense(全连接) 具有新数据集的图层。我如何使用 Siamese Networks 做到这一点?我只能使用 Imagenet CNN 来做到这一点,但我不知道如何使用自定义连体网络来做到这一点。

0 投票
0 回答
28 浏览

deep-learning - 在 PyTorch 中微调 Transformer(BERT、RoBERTa 等)

好吧。所以有多种方法可以微调变压器:

  1. 冻结变压器的参数,只有它的最终输出被输入另一个模型(用户训练这个“另一个”模型),
  2. 带有用户添加的自定义层的整个转换器都经过微调。顶级会议的多篇论文使用第二种方法。那些“如何微调 BERT”的博客文章也是如此,它们通常将 PyTorch 自定义层定义为 nn.Module 对象。一个常见的实现可能是这样的:]

#示例 1 开始)

#示例 1 结束)

#示例 2 开始)

#示例 2 结束)

所以,我想知道是否可以使用上面的模型类来训练变压器模型本身。从表面上看,好像转换器模型仅用于提供输出(特征提取),而用户仅训练新的自定义层(如上面的方法 1)。

但是很多博客文章说上面的代码对应于方法 2,其中整个转换器与新的自定义层一起进行了微调。这是怎么回事?

如果上面的代码是方法2,如何冻结BERT模型并只训练新的自定义层?有谁知道一个好的代码实现可以参考?

0 投票
1 回答
45 浏览

python - pytorch RuntimeError:输入和输出大小应大于0,但得到输入(H:1605,W:2)输出(H:799,W:0)

我正在尝试使用他们自己的教程从他们的页面微调 Pytorch 模型。我在来自 Kaggle 的数据集 StaVer 上进行了尝试:rtatman/stamp-verification-staver-dataset。

他们代码的唯一变化是数据集的路径。训练模型部分出现的错误:

.

只需运行以下代码即可复制相同的错误:

奇怪的是它在 image_382 之前工作正常。如果我删除所有以前的图像并在最后大约运行模型。50张图片也可以。似乎问题与图像无关,而与图像数量有关。通过模型()运行的图像数量。

这是错误:

有谁知道错误与什么有关?先感谢您。迈克尔

0 投票
0 回答
18 浏览

conv-neural-network - 微调 CNN 重新发送 50

这是我第一次尝试在 Keras 上的 ImageNet 上进行微调和使用预训练模型,并使用我自己的数据来测试它的性能。我对我得到的错误类型有点困惑。

基本上一切正常,直到这个 model.fit 单元格,但这并不意味着错误来自上面。这个错误让我觉得我需要在我的 CNN 中编辑一些参数

错误信息:

ValueError:在用户代码中:

欢迎任何帮助

0 投票
0 回答
30 浏览

validation - 使用合成图像微调模型时是否需要验证集?

  • 更新

我可以将小测试集拆分为验证集realB-v和测试集realB-t,然后微调模型并在测试集realB-v上进行测试。然后,我交换验证集和测试集并训练一个新模型。我可以报告两次培训的平均结果吗?

  • 原帖

我有一个在真实数据集realA上训练的预训练模型M,我在另一个真实数据集realB上对其进行了测试,结果非常差,因为realArealB存在域差距。由于realB中的真实图像很难获取,因此我决定生成像realB这样的合成图像,并使用这些图像synthetA来微调模型M

我想知道我是否还需要获得验证集?如果是这样,验证集应该从syntheArealB 中分离出来realB已经是一个非常小的集合(300 张图像)。

在我看来,我认为在这种情况下不需要验证集。如果我直接微调模型并根据realB上的准确率得到超参数,它不会引起泛化问题,因为我用于微调的图像都是合成的。

我想听听你的意见。谢谢你。