Chinese-CLIP
Chinese-CLIP copied to clipboard
LOSS:nan 微调时LOSS异常
请教一下在进行微调时不管我的lr设置多小,这里的loss总会在第一个batch后变成nan是怎么回事
使用的是sh文件中提供的默认参数 context_length=52 warmup=100 batch_size=128 valid_batch_size=128 accum_freq=1 lr=5e-5 wd=0.001
可能有脏数据
我也遇到了这个问题,而且用官方提供的处理好的数据集也会这样,请问问题解决了吗
你好,我已经收到来信,会尽快查看~
我也遇到了类似的问题,有解决方法麻烦踢我一下~
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我用的是自己的数据,当时的情况是开始几个batch的loss正常,精度有七十多,后面loss就变为了non,精度变成三十多。 我之前怀疑是梯度爆炸,然后去代码里面加上了梯度裁剪,但是还是没什么用。 后面把学习率设置为0,发现还是会出现这样的情况 所以我怀疑这和硬件有关,我把单卡batch size设置成210 的时候,loss有时候正常有时候为non,它们交替出现,我单卡显存是32g
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我用的是自己的数据,当时的情况是开始几个batch的loss正常,精度有七十多,后面loss就变为了non,精度变成三十多。 我之前怀疑是梯度爆炸,然后去代码里面加上了梯度裁剪,但是还是没什么用。 后面把学习率设置为0,发现还是会出现这样的情况 所以我怀疑这和硬件有关,我把单卡batch size设置成210 的时候,loss有时候正常有时候为non,它们交替出现,我单卡显存是32g
我是用2*v100,单卡显存32g, 单卡batch size设置了128,我自己的数据集,其实只有三种文本标签,只不过我对应了不同的文本id,大概类似于这样: {text_id:0, text:"标签A", image_id[0]} {text_id:1, text:"标签B", image_id[1]} {text_id:2, text:"标签A", image_id[2]} {text_id:3, text:"标签A", image_id[3]} {text_id:4, text:"标签C", image_id[4]} 向请教你一下,这样做数据对不对,我的loss就一直5.5x不变,acc就0.x,不知道是哪里出了问题,用MUGE训练正常的,但是MUGE的验证集acc也是一直30.x
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我用的是自己的数据,当时的情况是开始几个batch的loss正常,精度有七十多,后面loss就变为了non,精度变成三十多。 我之前怀疑是梯度爆炸,然后去代码里面加上了梯度裁剪,但是还是没什么用。 后面把学习率设置为0,发现还是会出现这样的情况 所以我怀疑这和硬件有关,我把单卡batch size设置成210 的时候,loss有时候正常有时候为non,它们交替出现,我单卡显存是32g
我是用2*v100,单卡显存32g, 单卡batch size设置了128,我自己的数据集,其实只有三种文本标签,只不过我对应了不同的文本id,大概类似于这样: {text_id:0, text:"标签A", image_id[0]} {text_id:1, text:"标签B", image_id[1]} {text_id:2, text:"标签A", image_id[2]} {text_id:3, text:"标签A", image_id[3]} {text_id:4, text:"标签C", image_id[4]} 向请教你一下,这样做数据对不对,我的loss就一直5.5x不变,acc就0.x,不知道是哪里出了问题,用MUGE训练正常的,但是MUGE的验证集acc也是一直30.x
应该没问题吧,可能是因为他这个模型已经训练的很好了,我后面的训练在验证集上的loss下降不多,不过一直训练下去在训练集上的loss倒是能下降到很低。 也可以试试给标签加个模版,我看到有些预训练模型在做分类任务的微调的时候会加个模版,因为标签字数太少,也不便于提取文本特征,比如猫狗分类任务的模版可以是:“图片中的动物是<标签>”。要根据你的具体分类任务设计一个模版,让它更好的提取文本特征,在猫狗分类任务中提示模版里面的“动物”这个词是有用,但我这个不太熟,可能说错。
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我用的是自己的数据,当时的情况是开始几个batch的loss正常,精度有七十多,后面loss就变为了non,精度变成三十多。 我之前怀疑是梯度爆炸,然后去代码里面加上了梯度裁剪,但是还是没什么用。 后面把学习率设置为0,发现还是会出现这样的情况 所以我怀疑这和硬件有关,我把单卡batch size设置成210 的时候,loss有时候正常有时候为non,它们交替出现,我单卡显存是32g
我是用2*v100,单卡显存32g, 单卡batch size设置了128,我自己的数据集,其实只有三种文本标签,只不过我对应了不同的文本id,大概类似于这样: {text_id:0, text:"标签A", image_id[0]} {text_id:1, text:"标签B", image_id[1]} {text_id:2, text:"标签A", image_id[2]} {text_id:3, text:"标签A", image_id[3]} {text_id:4, text:"标签C", image_id[4]} 向请教你一下,这样做数据对不对,我的loss就一直5.5x不变,acc就0.x,不知道是哪里出了问题,用MUGE训练正常的,但是MUGE的验证集acc也是一直30.x
应该没问题吧,可能是因为他这个模型已经训练的很好了,我后面的训练在验证集上的loss下降不多,不过一直训练下去在训练集上的loss倒是能下降到很低。 也可以试试给标签加个模版,我看到有些预训练模型在做分类任务的微调的时候会加个模版,因为标签字数太少,也不便于提取文本特征,比如猫狗分类任务的模版可以是:“图片中的动物是<标签>”。要根据你的具体分类任务设计一个模版,让它更好的提取文本特征,在猫狗分类任务中提示模版里面的“动物”这个词是有用,但我这个不太熟,可能说错。
模板也已经加了,但是不管我怎么调整数据,结果都是一样,请问你的id是从0开始的吗,这个有没有影响啊?id是不是得从他们训练的id接着来
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我用的是自己的数据,当时的情况是开始几个batch的loss正常,精度有七十多,后面loss就变为了non,精度变成三十多。 我之前怀疑是梯度爆炸,然后去代码里面加上了梯度裁剪,但是还是没什么用。 后面把学习率设置为0,发现还是会出现这样的情况 所以我怀疑这和硬件有关,我把单卡batch size设置成210 的时候,loss有时候正常有时候为non,它们交替出现,我单卡显存是32g
我是用2*v100,单卡显存32g, 单卡batch size设置了128,我自己的数据集,其实只有三种文本标签,只不过我对应了不同的文本id,大概类似于这样: {text_id:0, text:"标签A", image_id[0]} {text_id:1, text:"标签B", image_id[1]} {text_id:2, text:"标签A", image_id[2]} {text_id:3, text:"标签A", image_id[3]} {text_id:4, text:"标签C", image_id[4]} 向请教你一下,这样做数据对不对,我的loss就一直5.5x不变,acc就0.x,不知道是哪里出了问题,用MUGE训练正常的,但是MUGE的验证集acc也是一直30.x
应该没问题吧,可能是因为他这个模型已经训练的很好了,我后面的训练在验证集上的loss下降不多,不过一直训练下去在训练集上的loss倒是能下降到很低。 也可以试试给标签加个模版,我看到有些预训练模型在做分类任务的微调的时候会加个模版,因为标签字数太少,也不便于提取文本特征,比如猫狗分类任务的模版可以是:“图片中的动物是<标签>”。要根据你的具体分类任务设计一个模版,让它更好的提取文本特征,在猫狗分类任务中提示模版里面的“动物”这个词是有用,但我这个不太熟,可能说错。
模板也已经加了,但是不管我怎么调整数据,结果都是一样,请问你的id是从0开始的吗,这个有没有影响啊?id是不是得从他们训练的id接着来
ID应该没影响吧
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我用的是自己的数据,当时的情况是开始几个batch的loss正常,精度有七十多,后面loss就变为了non,精度变成三十多。 我之前怀疑是梯度爆炸,然后去代码里面加上了梯度裁剪,但是还是没什么用。 后面把学习率设置为0,发现还是会出现这样的情况 所以我怀疑这和硬件有关,我把单卡batch size设置成210 的时候,loss有时候正常有时候为non,它们交替出现,我单卡显存是32g
我是用2*v100,单卡显存32g, 单卡batch size设置了128,我自己的数据集,其实只有三种文本标签,只不过我对应了不同的文本id,大概类似于这样: {text_id:0, text:"标签A", image_id[0]} {text_id:1, text:"标签B", image_id[1]} {text_id:2, text:"标签A", image_id[2]} {text_id:3, text:"标签A", image_id[3]} {text_id:4, text:"标签C", image_id[4]} 向请教你一下,这样做数据对不对,我的loss就一直5.5x不变,acc就0.x,不知道是哪里出了问题,用MUGE训练正常的,但是MUGE的验证集acc也是一直30.x
应该没问题吧,可能是因为他这个模型已经训练的很好了,我后面的训练在验证集上的loss下降不多,不过一直训练下去在训练集上的loss倒是能下降到很低。 也可以试试给标签加个模版,我看到有些预训练模型在做分类任务的微调的时候会加个模版,因为标签字数太少,也不便于提取文本特征,比如猫狗分类任务的模版可以是:“图片中的动物是<标签>”。要根据你的具体分类任务设计一个模版,让它更好的提取文本特征,在猫狗分类任务中提示模版里面的“动物”这个词是有用,但我这个不太熟,可能说错。
模板也已经加了,但是不管我怎么调整数据,结果都是一样,请问你的id是从0开始的吗,这个有没有影响啊?id是不是得从他们训练的id接着来
ID应该没影响吧
好吧,我已经想不到从哪里找问题了哈哈哈,还是谢谢你啦
我把accum_freq这个参数设置为1之后就莫名其妙好了,也可能和batch size有关,我把单卡batch size设置成了200
请问你有用自己的数据集吗,我这边遇到的问题是使用自己的数据集,loss一直不收敛,和题主的还不太一样,不知道是不是我标签什么的做错了
我用的是自己的数据,当时的情况是开始几个batch的loss正常,精度有七十多,后面loss就变为了non,精度变成三十多。 我之前怀疑是梯度爆炸,然后去代码里面加上了梯度裁剪,但是还是没什么用。 后面把学习率设置为0,发现还是会出现这样的情况 所以我怀疑这和硬件有关,我把单卡batch size设置成210 的时候,loss有时候正常有时候为non,它们交替出现,我单卡显存是32g
我的问题和你一样,有时候正常,有时候nan,正常的时候从整体来看,只看正常的话是在收敛的
你好,我已经收到来信,会尽快查看~