- 增加训练轮次
Baseline只使用训练了10轮数据,一般来说使用更多的训练轮次可以使模型表现更好
bash
# 在 baseline里
python train.py --epochs 15
-
调整正负样本权重
原始数据的正负样本不均衡,修改采样的正负样本权重调整模型对于正样本的学习能力
-
增加简单噪声增强
测试集信噪比 -10~5 dB,如果我们训练的都是干净数据(没有加噪声),那么模型对于测试集中加了噪声的数据表现就会比较差(没有学习过带噪的数据)
最简单的做法:读 wav 后随机 wav += noise,SNR 采样范围对齐测试集 -10~5 dB。
-
使用全量训练集
Baseline只训练了其中5w条数据,使用更多的数据量训练可以使模型学到更广泛的内容,所以可以使用全量50w条数据进行训练
https://challenge.xfyun.cn/topic/info?type=KDBURI&option=stsj
config.py修改
bash
from __future__ import annotations
import os
from dataclasses import dataclass, field
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
@dataclass
class AudioConfig:
sample_rate: int = 16000
n_fft: int = 400
hop_length: int = 160
n_mels: int = 40
max_frames: int = 100
@dataclass
class TrainConfig:
embed_dim: int = 64
batch_size: int = 128
num_workers: int = 8
epochs: int = 10
lr: float = 1e-3
# pos_weight: float = 4.0 # 训练集正负比约 1:4
pos_weight: float = 5.0 # mayao 2. 调整正负样本权重
train_subset: int = 500000
seed: int = 42
log_every: int = 100
@dataclass
class Paths:
root: str = ROOT
train_zip: str = field(default="")
train_csv: str = field(default="")
dev_seen_zip: str = field(default="")
dev_seen_csv: str = field(default="")
dev_unseen_zip: str = field(default="")
dev_unseen_csv: str = field(default="")
eval_seen_zip: str = field(default="")
eval_seen_csv: str = field(default="")
eval_unseen_zip: str = field(default="")
eval_unseen_csv: str = field(default="")
ckpt_dir: str = field(default="")
def __post_init__(self):
r = self.root
#self.train_zip = os.path.join(r, "train_subset", "wav.zip")
#self.train_csv = os.path.join(r, "train_subset", "train_label.csv")
# 使用全量数据 mayao 4. 使用全量训练集
self.train_zip = os.path.join(r, "train", "wav.zip")
self.train_csv = os.path.join(r, "train", "train_label.csv")
self.dev_seen_zip = os.path.join(r, "dev", "dev_seen", "wav.zip")
self.dev_seen_csv = os.path.join(r, "dev", "dev_seen", "dev_seen_label.csv")
self.dev_unseen_zip = os.path.join(r, "dev", "dev_unseen", "wav.zip")
self.dev_unseen_csv = os.path.join(r, "dev", "dev_unseen", "dev_unseen_label.csv")
self.eval_seen_zip = os.path.join(r, "eval", "eval_seen", "wav.zip")
self.eval_seen_csv = os.path.join(r, "evalcsv_without_label", "eval_seen_without_label.csv")
self.eval_unseen_zip = os.path.join(r, "eval", "eval_unseen", "wav.zip")
self.eval_unseen_csv = os.path.join(r, "evalcsv_without_label", "eval_unseen_without_label.csv")
self.ckpt_dir = os.path.join(os.path.dirname(__file__), "checkpoints")
PATHS = Paths()
AUDIO = AudioConfig()
TRAIN = TrainConfig()
data.py修改
bash
from __future__ import annotations
import csv
import io
import os
import zipfile
from typing import List
import numpy as np
import soundfile as sf
import torch
import torchaudio
from torch.utils.data import Dataset
import math
from config import AudioConfig
_ZIP_CACHE: dict = {}
def _get_zip(path: str) -> zipfile.ZipFile:
key = (os.getpid(), path)
if key not in _ZIP_CACHE:
_ZIP_CACHE[key] = zipfile.ZipFile(path, "r")
return _ZIP_CACHE[key]
def read_wav(zip_path: str, name: str, sr: int,snr_db: float = 20.0) -> np.ndarray:
data = _get_zip(zip_path).read(name)
wav, file_sr = sf.read(io.BytesIO(data), dtype="float32", always_2d=False)
if wav.ndim > 1:
wav = wav.mean(axis=1)
if file_sr != sr:
t = torchaudio.functional.resample(
torch.from_numpy(wav).unsqueeze(0), file_sr, sr)
wav = t.squeeze(0).numpy()
# mayao 3. 增加简单噪声增强
rng = np.random.default_rng(2026)
sig_power = float(np.mean(wav ** 2)) + 1e-12
noise = rng.standard_normal(len(wav)).astype(np.float32)
noise_power = float(np.mean(noise ** 2)) + 1e-12
target_noise_power = sig_power / (10 ** (snr_db / 10.0))
noise = noise * math.sqrt(target_noise_power / noise_power)
wav += noise
return wav.astype(np.float32)
def load_pairs(csv_path: str, with_label: bool) -> List[dict]:
rows = []
with open(csv_path, encoding="utf-8") as f:
for r in csv.DictReader(f):
item = {"id": r["id"]}
if with_label:
item["label"] = int(r["label"])
rows.append(item)
return rows
class LogMel:
def __init__(self, cfg: AudioConfig):
self.mel = torchaudio.transforms.MelSpectrogram(
sample_rate=cfg.sample_rate,
n_fft=cfg.n_fft,
hop_length=cfg.hop_length,
n_mels=cfg.n_mels,
power=2.0,
)
def __call__(self, wav: torch.Tensor) -> torch.Tensor:
return torch.log(self.mel(wav) + 1e-6)
def pad_spec(spec: torch.Tensor, max_frames: int) -> torch.Tensor:
"""(n_mels, T) -> (1, n_mels, max_frames)"""
T = spec.shape[-1]
if T < max_frames:
spec = torch.nn.functional.pad(spec, (0, max_frames - T))
else:
spec = spec[:, :max_frames]
return spec.unsqueeze(0)
class PairDataset(Dataset):
def __init__(self, pairs: List[dict], zip_path: str, cfg: AudioConfig,
inference: bool = False):
self.pairs = pairs
self.zip_path = zip_path
self.cfg = cfg
self.inference = inference
self.logmel = LogMel(cfg)
def __len__(self):
return len(self.pairs)
def _feat(self, wav_name: str) -> torch.Tensor:
wav = read_wav(self.zip_path, wav_name, self.cfg.sample_rate)
spec = self.logmel(torch.from_numpy(wav))
return pad_spec(spec, self.cfg.max_frames)
def __getitem__(self, idx: int):
p = self.pairs[idx]
pid = p["id"]
e = self._feat(f"wav/{pid}_enroll.wav")
q = self._feat(f"wav/{pid}_query.wav")
label = -1 if self.inference else p["label"]
return e, q, label, pid
def collate(batch):
es = torch.stack([b[0] for b in batch])
qs = torch.stack([b[1] for b in batch])
labels = torch.tensor([b[2] for b in batch], dtype=torch.float32)
ids = [b[3] for b in batch]
return es, qs, labels, ids
训练结果
bash
root@dsw-2040063-54c995dd6-jn7d5:/mnt/workspace/keyword_detect/baseline# python train.py --epochs 15
train: 500000 / 500000 pairs
model params: 22,978 (0.02M)
ep1 100/3906 loss=3.4313
ep1 200/3906 loss=3.0741
ep1 300/3906 loss=2.9193
ep1 400/3906 loss=2.7775
ep1 500/3906 loss=2.6384
ep1 600/3906 loss=2.5265
ep1 700/3906 loss=2.4315
ep1 800/3906 loss=2.3502
ep1 900/3906 loss=2.2826
ep1 1000/3906 loss=2.2193
ep1 1100/3906 loss=2.1591
ep1 1200/3906 loss=2.1065
ep1 1300/3906 loss=2.0584
ep1 1400/3906 loss=2.0144
ep1 1500/3906 loss=1.9756
ep1 1600/3906 loss=1.9389
ep1 1700/3906 loss=1.9051
ep1 1800/3906 loss=1.8709
ep1 1900/3906 loss=1.8412
ep1 2000/3906 loss=1.8150
ep1 2100/3906 loss=1.7894
ep1 2200/3906 loss=1.7640
ep1 2300/3906 loss=1.7406
ep1 2400/3906 loss=1.7183
ep1 2500/3906 loss=1.6968
ep1 2600/3906 loss=1.6777
ep1 2700/3906 loss=1.6591
ep1 2800/3906 loss=1.6407
ep1 2900/3906 loss=1.6231
ep1 3000/3906 loss=1.6063
ep1 3100/3906 loss=1.5901
ep1 3200/3906 loss=1.5747
ep1 3300/3906 loss=1.5608
ep1 3400/3906 loss=1.5464
ep1 3500/3906 loss=1.5323
ep1 3600/3906 loss=1.5194
ep1 3700/3906 loss=1.5074
ep1 3800/3906 loss=1.4958
ep1 3900/3906 loss=1.4847
[epoch 1] seen=0.5938 unseen=0.4958 mean=0.5448 (253s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep2 100/3906 loss=1.0316
ep2 200/3906 loss=1.0259
ep2 300/3906 loss=1.0276
ep2 400/3906 loss=1.0287
ep2 500/3906 loss=1.0210
ep2 600/3906 loss=1.0222
ep2 700/3906 loss=1.0214
ep2 800/3906 loss=1.0185
ep2 900/3906 loss=1.0155
ep2 1000/3906 loss=1.0143
ep2 1100/3906 loss=1.0138
ep2 1200/3906 loss=1.0116
ep2 1300/3906 loss=1.0104
ep2 1400/3906 loss=1.0072
ep2 1500/3906 loss=1.0075
ep2 1600/3906 loss=1.0053
ep2 1700/3906 loss=1.0059
ep2 1800/3906 loss=1.0037
ep2 1900/3906 loss=1.0027
ep2 2000/3906 loss=1.0002
ep2 2100/3906 loss=1.0002
ep2 2200/3906 loss=0.9991
ep2 2300/3906 loss=0.9971
ep2 2400/3906 loss=0.9949
ep2 2500/3906 loss=0.9927
ep2 2600/3906 loss=0.9917
ep2 2700/3906 loss=0.9904
ep2 2800/3906 loss=0.9900
ep2 2900/3906 loss=0.9886
ep2 3000/3906 loss=0.9874
ep2 3100/3906 loss=0.9866
ep2 3200/3906 loss=0.9860
ep2 3300/3906 loss=0.9851
ep2 3400/3906 loss=0.9842
ep2 3500/3906 loss=0.9830
ep2 3600/3906 loss=0.9816
ep2 3700/3906 loss=0.9804
ep2 3800/3906 loss=0.9798
ep2 3900/3906 loss=0.9782
[epoch 2] seen=0.5977 unseen=0.4892 mean=0.5435 (259s)
ep3 100/3906 loss=0.9307
ep3 200/3906 loss=0.9363
ep3 300/3906 loss=0.9348
ep3 400/3906 loss=0.9347
ep3 500/3906 loss=0.9347
ep3 600/3906 loss=0.9365
ep3 700/3906 loss=0.9385
ep3 800/3906 loss=0.9377
ep3 900/3906 loss=0.9363
ep3 1000/3906 loss=0.9371
ep3 1100/3906 loss=0.9381
ep3 1200/3906 loss=0.9378
ep3 1300/3906 loss=0.9368
ep3 1400/3906 loss=0.9352
ep3 1500/3906 loss=0.9343
ep3 1600/3906 loss=0.9333
ep3 1700/3906 loss=0.9323
ep3 1800/3906 loss=0.9310
ep3 1900/3906 loss=0.9315
ep3 2000/3906 loss=0.9310
ep3 2100/3906 loss=0.9312
ep3 2200/3906 loss=0.9300
ep3 2300/3906 loss=0.9294
ep3 2400/3906 loss=0.9297
ep3 2500/3906 loss=0.9290
ep3 2600/3906 loss=0.9288
ep3 2700/3906 loss=0.9285
ep3 2800/3906 loss=0.9276
ep3 2900/3906 loss=0.9270
ep3 3000/3906 loss=0.9259
ep3 3100/3906 loss=0.9251
ep3 3200/3906 loss=0.9242
ep3 3300/3906 loss=0.9233
ep3 3400/3906 loss=0.9228
ep3 3500/3906 loss=0.9228
ep3 3600/3906 loss=0.9226
ep3 3700/3906 loss=0.9218
ep3 3800/3906 loss=0.9212
ep3 3900/3906 loss=0.9205
[epoch 3] seen=0.6095 unseen=0.4880 mean=0.5487 (254s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep4 100/3906 loss=0.8952
ep4 200/3906 loss=0.8971
ep4 300/3906 loss=0.8947
ep4 400/3906 loss=0.8946
ep4 500/3906 loss=0.8884
ep4 600/3906 loss=0.8870
ep4 700/3906 loss=0.8903
ep4 800/3906 loss=0.8864
ep4 900/3906 loss=0.8848
ep4 1000/3906 loss=0.8838
ep4 1100/3906 loss=0.8826
ep4 1200/3906 loss=0.8824
ep4 1300/3906 loss=0.8819
ep4 1400/3906 loss=0.8800
ep4 1500/3906 loss=0.8801
ep4 1600/3906 loss=0.8796
ep4 1700/3906 loss=0.8802
ep4 1800/3906 loss=0.8802
ep4 1900/3906 loss=0.8798
ep4 2000/3906 loss=0.8795
ep4 2100/3906 loss=0.8790
ep4 2200/3906 loss=0.8780
ep4 2300/3906 loss=0.8784
ep4 2400/3906 loss=0.8775
ep4 2500/3906 loss=0.8780
ep4 2600/3906 loss=0.8761
ep4 2700/3906 loss=0.8756
ep4 2800/3906 loss=0.8751
ep4 2900/3906 loss=0.8741
ep4 3000/3906 loss=0.8735
ep4 3100/3906 loss=0.8727
ep4 3200/3906 loss=0.8717
ep4 3300/3906 loss=0.8714
ep4 3400/3906 loss=0.8711
ep4 3500/3906 loss=0.8702
ep4 3600/3906 loss=0.8695
ep4 3700/3906 loss=0.8687
ep4 3800/3906 loss=0.8687
ep4 3900/3906 loss=0.8686
[epoch 4] seen=0.6201 unseen=0.4929 mean=0.5565 (254s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep5 100/3906 loss=0.8516
ep5 200/3906 loss=0.8368
ep5 300/3906 loss=0.8389
ep5 400/3906 loss=0.8420
ep5 500/3906 loss=0.8394
ep5 600/3906 loss=0.8401
ep5 700/3906 loss=0.8395
ep5 800/3906 loss=0.8374
ep5 900/3906 loss=0.8363
ep5 1000/3906 loss=0.8367
ep5 1100/3906 loss=0.8365
ep5 1200/3906 loss=0.8347
ep5 1300/3906 loss=0.8347
ep5 1400/3906 loss=0.8338
ep5 1500/3906 loss=0.8333
ep5 1600/3906 loss=0.8327
ep5 1700/3906 loss=0.8330
ep5 1800/3906 loss=0.8322
ep5 1900/3906 loss=0.8318
ep5 2000/3906 loss=0.8313
ep5 2100/3906 loss=0.8315
ep5 2200/3906 loss=0.8304
ep5 2300/3906 loss=0.8294
ep5 2400/3906 loss=0.8287
ep5 2500/3906 loss=0.8286
ep5 2600/3906 loss=0.8279
ep5 2700/3906 loss=0.8279
ep5 2800/3906 loss=0.8271
ep5 2900/3906 loss=0.8266
ep5 3000/3906 loss=0.8258
ep5 3100/3906 loss=0.8255
ep5 3200/3906 loss=0.8249
ep5 3300/3906 loss=0.8249
ep5 3400/3906 loss=0.8245
ep5 3500/3906 loss=0.8242
ep5 3600/3906 loss=0.8236
ep5 3700/3906 loss=0.8231
ep5 3800/3906 loss=0.8232
ep5 3900/3906 loss=0.8229
[epoch 5] seen=0.6199 unseen=0.4924 mean=0.5562 (254s)
ep6 100/3906 loss=0.7949
ep6 200/3906 loss=0.8011
ep6 300/3906 loss=0.7969
ep6 400/3906 loss=0.7962
ep6 500/3906 loss=0.7919
ep6 600/3906 loss=0.7938
ep6 700/3906 loss=0.7903
ep6 800/3906 loss=0.7902
ep6 900/3906 loss=0.7898
ep6 1000/3906 loss=0.7893
ep6 1100/3906 loss=0.7929
ep6 1200/3906 loss=0.7929
ep6 1300/3906 loss=0.7931
ep6 1400/3906 loss=0.7935
ep6 1500/3906 loss=0.7928
ep6 1600/3906 loss=0.7934
ep6 1700/3906 loss=0.7935
ep6 1800/3906 loss=0.7930
ep6 1900/3906 loss=0.7924
ep6 2000/3906 loss=0.7929
ep6 2100/3906 loss=0.7934
ep6 2200/3906 loss=0.7928
ep6 2300/3906 loss=0.7928
ep6 2400/3906 loss=0.7920
ep6 2500/3906 loss=0.7920
ep6 2600/3906 loss=0.7913
ep6 2700/3906 loss=0.7911
ep6 2800/3906 loss=0.7912
ep6 2900/3906 loss=0.7917
ep6 3000/3906 loss=0.7912
ep6 3100/3906 loss=0.7904
ep6 3200/3906 loss=0.7906
ep6 3300/3906 loss=0.7898
ep6 3400/3906 loss=0.7895
ep6 3500/3906 loss=0.7889
ep6 3600/3906 loss=0.7892
ep6 3700/3906 loss=0.7887
ep6 3800/3906 loss=0.7885
ep6 3900/3906 loss=0.7880
[epoch 6] seen=0.6319 unseen=0.4868 mean=0.5594 (257s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep7 100/3906 loss=0.7811
ep7 200/3906 loss=0.7778
ep7 300/3906 loss=0.7750
ep7 400/3906 loss=0.7692
ep7 500/3906 loss=0.7656
ep7 600/3906 loss=0.7659
ep7 700/3906 loss=0.7671
ep7 800/3906 loss=0.7690
ep7 900/3906 loss=0.7672
ep7 1000/3906 loss=0.7663
ep7 1100/3906 loss=0.7658
ep7 1200/3906 loss=0.7658
ep7 1300/3906 loss=0.7671
ep7 1400/3906 loss=0.7664
ep7 1500/3906 loss=0.7663
ep7 1600/3906 loss=0.7658
ep7 1700/3906 loss=0.7645
ep7 1800/3906 loss=0.7649
ep7 1900/3906 loss=0.7643
ep7 2000/3906 loss=0.7643
ep7 2100/3906 loss=0.7638
ep7 2200/3906 loss=0.7642
ep7 2300/3906 loss=0.7640
ep7 2400/3906 loss=0.7641
ep7 2500/3906 loss=0.7635
ep7 2600/3906 loss=0.7642
ep7 2700/3906 loss=0.7642
ep7 2800/3906 loss=0.7643
ep7 2900/3906 loss=0.7642
ep7 3000/3906 loss=0.7638
ep7 3100/3906 loss=0.7637
ep7 3200/3906 loss=0.7636
ep7 3300/3906 loss=0.7638
ep7 3400/3906 loss=0.7630
ep7 3500/3906 loss=0.7618
ep7 3600/3906 loss=0.7613
ep7 3700/3906 loss=0.7609
ep7 3800/3906 loss=0.7608
ep7 3900/3906 loss=0.7611
[epoch 7] seen=0.6267 unseen=0.4949 mean=0.5608 (259s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep8 100/3906 loss=0.7411
ep8 200/3906 loss=0.7435
ep8 300/3906 loss=0.7410
ep8 400/3906 loss=0.7390
ep8 500/3906 loss=0.7372
ep8 600/3906 loss=0.7405
ep8 700/3906 loss=0.7398
ep8 800/3906 loss=0.7403
ep8 900/3906 loss=0.7417
ep8 1000/3906 loss=0.7442
ep8 1100/3906 loss=0.7454
ep8 1200/3906 loss=0.7439
ep8 1300/3906 loss=0.7433
ep8 1400/3906 loss=0.7423
ep8 1500/3906 loss=0.7410
ep8 1600/3906 loss=0.7405
ep8 1700/3906 loss=0.7400
ep8 1800/3906 loss=0.7396
ep8 1900/3906 loss=0.7391
ep8 2000/3906 loss=0.7395
ep8 2100/3906 loss=0.7393
ep8 2200/3906 loss=0.7394
ep8 2300/3906 loss=0.7396
ep8 2400/3906 loss=0.7394
ep8 2500/3906 loss=0.7396
ep8 2600/3906 loss=0.7394
ep8 2700/3906 loss=0.7387
ep8 2800/3906 loss=0.7386
ep8 2900/3906 loss=0.7386
ep8 3000/3906 loss=0.7384
ep8 3100/3906 loss=0.7373
ep8 3200/3906 loss=0.7366
ep8 3300/3906 loss=0.7363
ep8 3400/3906 loss=0.7365
ep8 3500/3906 loss=0.7362
ep8 3600/3906 loss=0.7361
ep8 3700/3906 loss=0.7358
ep8 3800/3906 loss=0.7358
ep8 3900/3906 loss=0.7349
[epoch 8] seen=0.6293 unseen=0.4983 mean=0.5638 (262s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep9 100/3906 loss=0.7062
ep9 200/3906 loss=0.7218
ep9 300/3906 loss=0.7292
ep9 400/3906 loss=0.7275
ep9 500/3906 loss=0.7295
ep9 600/3906 loss=0.7307
ep9 700/3906 loss=0.7292
ep9 800/3906 loss=0.7271
ep9 900/3906 loss=0.7254
ep9 1000/3906 loss=0.7245
ep9 1100/3906 loss=0.7224
ep9 1200/3906 loss=0.7229
ep9 1300/3906 loss=0.7226
ep9 1400/3906 loss=0.7226
ep9 1500/3906 loss=0.7224
ep9 1600/3906 loss=0.7218
ep9 1700/3906 loss=0.7207
ep9 1800/3906 loss=0.7191
ep9 1900/3906 loss=0.7193
ep9 2000/3906 loss=0.7199
ep9 2100/3906 loss=0.7196
ep9 2200/3906 loss=0.7187
ep9 2300/3906 loss=0.7183
ep9 2400/3906 loss=0.7179
ep9 2500/3906 loss=0.7179
ep9 2600/3906 loss=0.7177
ep9 2700/3906 loss=0.7174
ep9 2800/3906 loss=0.7165
ep9 2900/3906 loss=0.7164
ep9 3000/3906 loss=0.7157
ep9 3100/3906 loss=0.7154
ep9 3200/3906 loss=0.7148
ep9 3300/3906 loss=0.7145
ep9 3400/3906 loss=0.7143
ep9 3500/3906 loss=0.7139
ep9 3600/3906 loss=0.7140
ep9 3700/3906 loss=0.7140
ep9 3800/3906 loss=0.7137
ep9 3900/3906 loss=0.7136
[epoch 9] seen=0.6318 unseen=0.4908 mean=0.5613 (254s)
ep10 100/3906 loss=0.7043
ep10 200/3906 loss=0.7037
ep10 300/3906 loss=0.7075
ep10 400/3906 loss=0.7088
ep10 500/3906 loss=0.7110
ep10 600/3906 loss=0.7093
ep10 700/3906 loss=0.7063
ep10 800/3906 loss=0.7036
ep10 900/3906 loss=0.7051
ep10 1000/3906 loss=0.7046
ep10 1100/3906 loss=0.7022
ep10 1200/3906 loss=0.7019
ep10 1300/3906 loss=0.7015
ep10 1400/3906 loss=0.7017
ep10 1500/3906 loss=0.7009
ep10 1600/3906 loss=0.7005
ep10 1700/3906 loss=0.7003
ep10 1800/3906 loss=0.6999
ep10 1900/3906 loss=0.6995
ep10 2000/3906 loss=0.6985
ep10 2100/3906 loss=0.6977
ep10 2200/3906 loss=0.6980
ep10 2300/3906 loss=0.6975
ep10 2400/3906 loss=0.6979
ep10 2500/3906 loss=0.6976
ep10 2600/3906 loss=0.6974
ep10 2700/3906 loss=0.6965
ep10 2800/3906 loss=0.6965
ep10 2900/3906 loss=0.6959
ep10 3000/3906 loss=0.6960
ep10 3100/3906 loss=0.6960
ep10 3200/3906 loss=0.6960
ep10 3300/3906 loss=0.6954
ep10 3400/3906 loss=0.6949
ep10 3500/3906 loss=0.6945
ep10 3600/3906 loss=0.6942
ep10 3700/3906 loss=0.6941
ep10 3800/3906 loss=0.6940
ep10 3900/3906 loss=0.6939
[epoch 10] seen=0.6288 unseen=0.4969 mean=0.5628 (257s)
ep11 100/3906 loss=0.6980
ep11 200/3906 loss=0.6841
ep11 300/3906 loss=0.6857
ep11 400/3906 loss=0.6823
ep11 500/3906 loss=0.6798
ep11 600/3906 loss=0.6805
ep11 700/3906 loss=0.6774
ep11 800/3906 loss=0.6771
ep11 900/3906 loss=0.6784
ep11 1000/3906 loss=0.6779
ep11 1100/3906 loss=0.6778
ep11 1200/3906 loss=0.6775
ep11 1300/3906 loss=0.6767
ep11 1400/3906 loss=0.6782
ep11 1500/3906 loss=0.6773
ep11 1600/3906 loss=0.6774
ep11 1700/3906 loss=0.6783
ep11 1800/3906 loss=0.6789
ep11 1900/3906 loss=0.6785
ep11 2000/3906 loss=0.6776
ep11 2100/3906 loss=0.6767
ep11 2200/3906 loss=0.6767
ep11 2300/3906 loss=0.6764
ep11 2400/3906 loss=0.6762
ep11 2500/3906 loss=0.6761
ep11 2600/3906 loss=0.6760
ep11 2700/3906 loss=0.6762
ep11 2800/3906 loss=0.6765
ep11 2900/3906 loss=0.6767
ep11 3000/3906 loss=0.6770
ep11 3100/3906 loss=0.6770
ep11 3200/3906 loss=0.6771
ep11 3300/3906 loss=0.6776
ep11 3400/3906 loss=0.6767
ep11 3500/3906 loss=0.6768
ep11 3600/3906 loss=0.6764
ep11 3700/3906 loss=0.6765
ep11 3800/3906 loss=0.6760
ep11 3900/3906 loss=0.6766
[epoch 11] seen=0.6397 unseen=0.4926 mean=0.5661 (260s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep12 100/3906 loss=0.6601
ep12 200/3906 loss=0.6569
ep12 300/3906 loss=0.6586
ep12 400/3906 loss=0.6617
ep12 500/3906 loss=0.6610
ep12 600/3906 loss=0.6604
ep12 700/3906 loss=0.6615
ep12 800/3906 loss=0.6609
ep12 900/3906 loss=0.6607
ep12 1000/3906 loss=0.6628
ep12 1100/3906 loss=0.6622
ep12 1200/3906 loss=0.6621
ep12 1300/3906 loss=0.6622
ep12 1400/3906 loss=0.6623
ep12 1500/3906 loss=0.6630
ep12 1600/3906 loss=0.6629
ep12 1700/3906 loss=0.6642
ep12 1800/3906 loss=0.6647
ep12 1900/3906 loss=0.6637
ep12 2000/3906 loss=0.6645
ep12 2100/3906 loss=0.6640
ep12 2200/3906 loss=0.6636
ep12 2300/3906 loss=0.6632
ep12 2400/3906 loss=0.6630
ep12 2500/3906 loss=0.6638
ep12 2600/3906 loss=0.6637
ep12 2700/3906 loss=0.6631
ep12 2800/3906 loss=0.6631
ep12 2900/3906 loss=0.6633
ep12 3000/3906 loss=0.6627
ep12 3100/3906 loss=0.6627
ep12 3200/3906 loss=0.6631
ep12 3300/3906 loss=0.6628
ep12 3400/3906 loss=0.6625
ep12 3500/3906 loss=0.6626
ep12 3600/3906 loss=0.6630
ep12 3700/3906 loss=0.6623
ep12 3800/3906 loss=0.6619
ep12 3900/3906 loss=0.6622
[epoch 12] seen=0.6268 unseen=0.4966 mean=0.5617 (260s)
ep13 100/3906 loss=0.6423
ep13 200/3906 loss=0.6454
ep13 300/3906 loss=0.6444
ep13 400/3906 loss=0.6503
ep13 500/3906 loss=0.6489
ep13 600/3906 loss=0.6497
ep13 700/3906 loss=0.6499
ep13 800/3906 loss=0.6508
ep13 900/3906 loss=0.6514
ep13 1000/3906 loss=0.6527
ep13 1100/3906 loss=0.6523
ep13 1200/3906 loss=0.6535
ep13 1300/3906 loss=0.6527
ep13 1400/3906 loss=0.6526
ep13 1500/3906 loss=0.6524
ep13 1600/3906 loss=0.6534
ep13 1700/3906 loss=0.6528
ep13 1800/3906 loss=0.6526
ep13 1900/3906 loss=0.6521
ep13 2000/3906 loss=0.6513
ep13 2100/3906 loss=0.6527
ep13 2200/3906 loss=0.6520
ep13 2300/3906 loss=0.6518
ep13 2400/3906 loss=0.6512
ep13 2500/3906 loss=0.6506
ep13 2600/3906 loss=0.6503
ep13 2700/3906 loss=0.6502
ep13 2800/3906 loss=0.6499
ep13 2900/3906 loss=0.6498
ep13 3000/3906 loss=0.6497
ep13 3100/3906 loss=0.6491
ep13 3200/3906 loss=0.6486
ep13 3300/3906 loss=0.6485
ep13 3400/3906 loss=0.6488
ep13 3500/3906 loss=0.6487
ep13 3600/3906 loss=0.6488
ep13 3700/3906 loss=0.6486
ep13 3800/3906 loss=0.6483
ep13 3900/3906 loss=0.6480
[epoch 13] seen=0.6240 unseen=0.4965 mean=0.5602 (253s)
ep14 100/3906 loss=0.6388
ep14 200/3906 loss=0.6324
ep14 300/3906 loss=0.6323
ep14 400/3906 loss=0.6324
ep14 500/3906 loss=0.6302
ep14 600/3906 loss=0.6307
ep14 700/3906 loss=0.6340
ep14 800/3906 loss=0.6352
ep14 900/3906 loss=0.6344
ep14 1000/3906 loss=0.6346
ep14 1100/3906 loss=0.6367
ep14 1200/3906 loss=0.6380
ep14 1300/3906 loss=0.6381
ep14 1400/3906 loss=0.6381
ep14 1500/3906 loss=0.6381
ep14 1600/3906 loss=0.6364
ep14 1700/3906 loss=0.6362
ep14 1800/3906 loss=0.6369
ep14 1900/3906 loss=0.6373
ep14 2000/3906 loss=0.6372
ep14 2100/3906 loss=0.6372
ep14 2200/3906 loss=0.6363
ep14 2300/3906 loss=0.6368
ep14 2400/3906 loss=0.6363
ep14 2500/3906 loss=0.6363
ep14 2600/3906 loss=0.6365
ep14 2700/3906 loss=0.6368
ep14 2800/3906 loss=0.6371
ep14 2900/3906 loss=0.6365
ep14 3000/3906 loss=0.6364
ep14 3100/3906 loss=0.6359
ep14 3200/3906 loss=0.6358
ep14 3300/3906 loss=0.6362
ep14 3400/3906 loss=0.6362
ep14 3500/3906 loss=0.6361
ep14 3600/3906 loss=0.6364
ep14 3700/3906 loss=0.6362
ep14 3800/3906 loss=0.6362
ep14 3900/3906 loss=0.6361
[epoch 14] seen=0.6420 unseen=0.4974 mean=0.5697 (258s)
saved -> /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt
ep15 100/3906 loss=0.6385
ep15 200/3906 loss=0.6302
ep15 300/3906 loss=0.6330
ep15 400/3906 loss=0.6305
ep15 500/3906 loss=0.6267
ep15 600/3906 loss=0.6258
ep15 700/3906 loss=0.6261
ep15 800/3906 loss=0.6264
ep15 900/3906 loss=0.6269
ep15 1000/3906 loss=0.6274
ep15 1100/3906 loss=0.6280
ep15 1200/3906 loss=0.6294
ep15 1300/3906 loss=0.6300
ep15 1400/3906 loss=0.6305
ep15 1500/3906 loss=0.6290
ep15 1600/3906 loss=0.6298
ep15 1700/3906 loss=0.6284
ep15 1800/3906 loss=0.6293
ep15 1900/3906 loss=0.6275
ep15 2000/3906 loss=0.6278
ep15 2100/3906 loss=0.6281
ep15 2200/3906 loss=0.6284
ep15 2300/3906 loss=0.6280
ep15 2400/3906 loss=0.6274
ep15 2500/3906 loss=0.6279
ep15 2600/3906 loss=0.6280
ep15 2700/3906 loss=0.6269
ep15 2800/3906 loss=0.6262
ep15 2900/3906 loss=0.6261
ep15 3000/3906 loss=0.6259
ep15 3100/3906 loss=0.6257
ep15 3200/3906 loss=0.6255
ep15 3300/3906 loss=0.6252
ep15 3400/3906 loss=0.6254
ep15 3500/3906 loss=0.6253
ep15 3600/3906 loss=0.6251
ep15 3700/3906 loss=0.6254
ep15 3800/3906 loss=0.6250
ep15 3900/3906 loss=0.6251
[epoch 15] seen=0.6273 unseen=0.4914 mean=0.5593 (253s)
done. best dev mean AUC = 0.5697
root@dsw-2040063-54c995dd6-jn7d5:/mnt/workspace/keyword_detect/baseline# ^C
root@dsw-2040063-54c995dd6-jn7d5:/mnt/workspace/keyword_detect/baseline#
推理结果
bash
root@dsw-2040063-54c995dd6-jn7d5:/mnt/workspace/keyword_detect/baseline# python infer.py
loaded /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt (dev mean AUC=0.569717)
total: 100000 rows
wrote /mnt/workspace/keyword_detect/baseline/submission.csv
执行完成

提交结果
