音声分類の機械学習をしています。
データ拡張としてmixupを使って学習をしてみたのですが、何もしていないときよりもスコアが落ちてしまいます。
同じデータでmixupを使って学習している人が高いスコアを出しているためmixupを使ったからスコアが下がるということはないはずだと考え、プログラムが間違っていると思い質問しました。
mixup
1def mixup(data,label): 2 beta = 1 3 lam = np.random.beta(beta, beta) 4 if lam == 0 or lam == 1: 5 return data,label 6 index = torch.randperm(data.size(0)) 7 data = lam * data + (1 - lam) * data[index, :] 8 target_a, target_b = label, label[index] 9 label = lam * target_a + (1 - lam) * target_b 10 11 return data,label
lamが0,1の時に値をそのまま返すようにしているのは、dataの計算でどちらかが消えてしまうためそのようにしています。
モデルはresnet18,resnet34を使いましたが変わらず下がったままでした。optimizerはAdamを使いました。
わかる方いましたら宜しくお願い致します。
あなたの回答
tips
プレビュー