update: idfk
This commit is contained in:
parent
c2c2b4c29d
commit
2c2e780700
@ -35,4 +35,3 @@ Note
|
|||||||
0242: V6.1 # 自定义loss
|
0242: V6.1 # 自定义loss
|
||||||
0259: V6.1 # 调整学习率 (自定义loss)
|
0259: V6.1 # 调整学习率 (自定义loss)
|
||||||
0314: V6.1 # 调整学习率(交叉熵损失)
|
0314: V6.1 # 调整学习率(交叉熵损失)
|
||||||
0349: V6.3 # 增加层数至2
|
|
@ -1,26 +0,0 @@
|
|||||||
import torch
|
|
||||||
|
|
||||||
from modelV3_10 import VideoClassifierV3_10
|
|
||||||
from modelV3_9 import VideoClassifierV3_9
|
|
||||||
|
|
||||||
|
|
||||||
def convert_checkpoint(original_model, new_model):
|
|
||||||
"""转换原始checkpoint到新结构"""
|
|
||||||
state_dict = original_model.state_dict()
|
|
||||||
|
|
||||||
# 直接复制所有参数(因为结构保持兼容)
|
|
||||||
new_model.load_state_dict(state_dict)
|
|
||||||
return new_model
|
|
||||||
|
|
||||||
# 使用示例
|
|
||||||
original_model = VideoClassifierV3_9()
|
|
||||||
new_model = VideoClassifierV3_10()
|
|
||||||
|
|
||||||
# 加载原始checkpoint
|
|
||||||
original_model.load_state_dict(torch.load('./filter/checkpoints/best_model_V3.9.pt'))
|
|
||||||
|
|
||||||
# 转换参数
|
|
||||||
converted_model = convert_checkpoint(original_model, new_model)
|
|
||||||
|
|
||||||
# 保存转换后的模型
|
|
||||||
torch.save(converted_model.state_dict(), './filter/checkpoints/best_model_V3.10.pt')
|
|
@ -76,9 +76,9 @@ eval_interval = 20
|
|||||||
num_epochs = 20
|
num_epochs = 20
|
||||||
total_steps = samples_count * num_epochs / batch_size
|
total_steps = samples_count * num_epochs / batch_size
|
||||||
warmup_rate = 0.1
|
warmup_rate = 0.1
|
||||||
optimizer = optim.AdamW(model.parameters(), lr=5e-5, weight_decay=1e-5)
|
optimizer = optim.AdamW(model.parameters(), lr=1e-5, weight_decay=1e-3)
|
||||||
cosine_annealing_scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=total_steps - int(total_steps * warmup_rate))
|
cosine_annealing_scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=total_steps - int(total_steps * warmup_rate))
|
||||||
warmup_scheduler = optim.lr_scheduler.LinearLR(optimizer, start_factor=0.1, end_factor=1.0, total_iters=int(total_steps * warmup_rate))
|
warmup_scheduler = optim.lr_scheduler.LinearLR(optimizer, start_factor=0.4, end_factor=1.0, total_iters=int(total_steps * warmup_rate))
|
||||||
scheduler = optim.lr_scheduler.SequentialLR(optimizer, schedulers=[warmup_scheduler, cosine_annealing_scheduler], milestones=[int(total_steps * warmup_rate)])
|
scheduler = optim.lr_scheduler.SequentialLR(optimizer, schedulers=[warmup_scheduler, cosine_annealing_scheduler], milestones=[int(total_steps * warmup_rate)])
|
||||||
criterion = nn.CrossEntropyLoss(weight=class_weights).to(device)
|
criterion = nn.CrossEntropyLoss(weight=class_weights).to(device)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user