ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

命令行服务器调试python程序

2022-03-19 17:01:46  阅读:218  来源: 互联网

标签:python fold train ViT import 服务器 model pdb 调试


以下面的程序为例
首先准备好代码
把100个epoch改成1个epoch,因为只是为了调试,至于我为什么不在本地调试,主要是本地的内存不够,跑不动的,所以我干脆在服务器上跑

import os
import torch
from torch.utils.data import DataLoader
import pytorch_lightning as pl
from vis_model import HisToGene
from utils import *
from predict import model_predict, sr_predict
from dataset import ViT_HER2ST, ViT_SKIN
import pdb
pdb.set_trace()

fold = 5
tag = '-htg_her2st_785_32_cv'
dataset = ViT_HER2ST(train=True, fold=fold)
train_loader = DataLoader(dataset, batch_size=1, num_workers=4, shuffle=True)
model = HisToGene(n_layers=8, n_genes=785, learning_rate=1e-5)
trainer = pl.Trainer(gpus=0, max_epochs=1)
trainer.fit(model, train_loader)
print("训练完了")
#trainer.save_checkpoint("model/last_train_"+tag+'_'+str(fold)+".ckpt")

可以看到,我在代码的开头使用了一个pdb.set_trace()
然后使用
在这里插入图片描述就可以进入调试模式了,但是命令行有一个不好的地方就是这个代码不知道跑到哪里去了,这个时候需要借助本地的文件,自己试着理解
命令l可以看到上下部分的代码

此处还有一个很重要的东西就是调试时不能并行的问题,否则就会出问题,因此需要把代码改成

import os
import torch
from torch.utils.data import DataLoader
import pytorch_lightning as pl
from vis_model import HisToGene
from utils import *
from predict import model_predict, sr_predict
from dataset import ViT_HER2ST, ViT_SKIN
import pdb
#pdb.set_trace()

fold = 5
tag = '-htg_her2st_785_32_cv'
dataset = ViT_HER2ST(train=True, fold=fold)
train_loader = DataLoader(dataset, batch_size=1, num_workers=0, shuffle=True)
model = HisToGene(n_layers=8, n_genes=785, learning_rate=1e-5)
trainer = pl.Trainer(gpus=0, max_epochs=1)
#pdb.set_trace()
trainer.fit(model, train_loader)
print("训练完了")
#trainer.save_checkpoint("model/last_train_"+tag+'_'+str(fold)+".ckpt")

num_workers=0记得修改,否则会报错

不仅是这样,这个在pycharm中也会同时出现

标签:python,fold,train,ViT,import,服务器,model,pdb,调试
来源: https://blog.csdn.net/qq_45759229/article/details/123595552

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有