我还无法微调BEATs权重,因为我遇到了错误RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [32, 768, 248]]。我的猜测是,在提取特征的重塑过程中发生了原地操作,但如果有人有其他想法,那将非常有帮助!
我还没有成功地微调BEATs的权重,因为我遇到了错误RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [32, 768, 248]]。我的猜测是,在提取特征的重塑过程中发生了原地操作,但如果有人有其他想法,那将非常有帮助!
4条答案
按热度按时间ego6inou1#
我想在自己的数据上训练BEATs。
你们是否会提供训练代码?
zzwlnbp82#
也许这会有帮助:https://github.com/NINAnor/rare_species_detections。我正在尝试在ECS50数据集上微调BEATs,以便我能更好地理解模型并在我自己的数据上进行训练。到目前为止,我只成功地训练了附加到BEATs的完全连接层。
我还无法微调BEATs权重,因为我遇到了错误
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [32, 768, 248]]
。我的猜测是,在提取特征的重塑过程中发生了原地操作,但如果有人有其他想法,那将非常有帮助!rslzwgfq3#
也许这会有帮助:https://github.com/NINAnor/rare_species_detections。我正在尝试在ECS50数据集上微调BEATs,以便我能更好地理解模型并在我自己的数据上进行训练。到目前为止,我只成功地训练了附加到BEATs的完全连接层。
我还无法微调BEATs的权重,因为我遇到了错误。我的猜测是,在提取特征的重塑过程中发生了原地操作,但如果有人有其他想法,那将非常有帮助!
我认为这个问题是由transformer.pos_conv引起的,我不知道为什么这个一维卷积会出现问题。一个简单的解决方法是在backbone.py中用x_conv = self.pos_conv(x.transpose(1, 2)).detach()替换x_conv = self.pos_conv(x.transpose(1, 2))。
g0czyy6m4#
也许这会有所帮助:https://github.com/NINAnor/rare_species_detections。我正在尝试在ECS50数据集上微调BEATs,以便我能更好地理解模型并在我自己的数据上进行训练。到目前为止,我只能训练附加到BEATs上的完全连接层](https://github.com/NINAnor/rare_species_detections/blob/c6085dd40bd568f84f3538664bb654fac0a25b06/fine_tune/transferLearning.py#L72)。
我还没有成功地微调BEATs的权重,因为我遇到了错误
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [32, 768, 248]]
。我的猜测是,在提取特征的重塑过程中发生了原地操作,但如果有人有其他想法,那将非常有帮助!你能帮助我理解和实现你的解决方案吗?