Python 中,用try except语句块捕获并处理异常,其基本语法结构如下所示:<br>try:<br>可能产生异常的代码块<br>except [ (Error1, Error2, ... ) [as e] ]:<br>处理异常的代码块1<br>except [ (Error3, Error4, ... ) [as e] ]:<br>处理异常的代码块2<br>except [Exception]:<br>处理其它异常<br>该格式中,[] 括起来的部分可以使用,也可以省略。其中各部分的含义如下:(Error1, Error2,...) 、(Error3, Error4,...):其中,Error1、Error2、Error3 和Error4 都是具体的异常类型。显然,一个 except 块可以同时处理多种异常。[as e]:作为可选参数,表示给异常类型起一个别名 e,这样做的好处是方便在 except 块中调用异常类型(后续会用到)。[Exception]:作为可选参数,可以代指程序可能发生的所有异常情况,其通常用在最后一个 except 块。<br>从try except的基本语法格式可以看出,try 块有且仅有一个,但except 代码块可以有多个,且每个 except 块都可以同时处理多种异常。<br>当程序发生不同的意外情况时,会对应特定的异常类型,Python 解释器会根据该异常类型选择对应的 except 块来处理该异常。
"前言:先是给出pytorch的训练模型,验证模型,以数据进行划分,如何调学习率,什么是TTA,给出相应的方案,并简述一下我的调参经验<br>pytorch中的训练模型<br>def train(train_loader, model, criterion, optimizer, epoch):<br># 切换模型为训练模式<br>model.train()<br>train_loss =[]<br>for i,(input, target)in enumerate(tqdm(train_loader)):<br>if use_cuda:<br>input = input.cuda()<br>target = target.cuda()<br>print(""cuda is ok"")<br>c0, c1, c2, c3, c4 = model(input)<br>else:<br>print(""cuda is not done"")<br>target = target.long()<br>loss = criterion(c0, target[:,0])+ \<br>criterion(c1, target[:,1])+ \<br>criterion(c2, target[:,2])+ \<br>criterion(c3, target[:,3])+ \<br>criterion(c4, target[:,4])<br># loss /= 6<br>optimizer.zero_grad()<br>loss.backward()<br>optimizer.step()<br>train_loss.append(loss.item())<br>return np.mean(train_loss)<br>pytorch中的验证模型<br>def validate(val_loader, model, criterion):<br># 切换模型为预测模型<br>model.eval()<br>val_loss =[]<br># 不记录模型梯度信息<br>with torch.no_grad():<br>for i,(input, target)in enumerate(tqdm(val_loader)):<br>if use_cuda:<br>input = input.cu"