Pytorch处理数据与训练网络问题汇总(协同训练)

基础语法

模型训练

  • 【Swin-Unet】官方代码预训练权重加载函数load_from()

实际上由于SwinUnet是一个encoder-decoder对称的结构,因此加载权重时,作者并没有像通常那样仅仅加载encoder部分而不加载decoder部分,而是同时将encoder的权重对称地加载到了decoder上(除了swin_unet.layers_up.1/2/3.upsample)

  • 预训练中的权重加载(完全导入,部分导入)

#demo1 完全加载权重
model = NET1()
state_dict = model.state_dict()
weights = torch.load(weights_path)[‘model_state_dict’] #读取预训练模型权重
model.load_state_dict(weights)
#部分导入

  • loss损失函数
  • 一致性损失(半监督学习):用原样本的输出概率分布和增强样本的输出概率分布的KL散度损失与有标签样本的交叉熵损失进行联合训练
  • consistency_weigh一致性损失t的权重随着训练周期逐渐增加,防止网络训练前期被无意义的一致性目标影响。

def get_current_consistency_weight(epoch):
# Consistency ramp-up from https://arxiv.org/abs/1610.02242
return args.consistency * ramps.sigmoid_rampup(epoch, args.consistency_rampup)

  • Epoch与Iteration的概念类似

parser.add_argument( ’ --max_iterations’, type=int,default=300,help='maximum iterations number to train ’ )
#default=30000 改变iteration改变epoch

常见报错

  • For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

os.environ[ " CUDA_VISIBLE_DEVICES" ]=‘4,5’
os.environ[ " CUDA_VISIBLE_DEVICES" ]=‘4,5’ …41

  • ModuleNotFoundError: No module named ‘networks.unet’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值