以下面的程序为例
首先准备好代码
把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记得修改,否则会报错
【python|命令行服务器调试python程序】不仅是这样,这个在pycharm中也会同时出现
推荐阅读
- python|10 款最好的 Python IDE(十)
- python|python(海龟交易法则 画唐奇安通道)
- flask|Flask学习_07_Cookie 与 Session
- python|Python入门
- Python操作Excel,能自动的绝不手动
- python|10个最好用的Python开发工具(IDE)
- 时序分析|时序分析 26 - 时序预测 Prophet包初探
- 时间序列|拓端tecdat|Python中用Prophet模型对天气时间序列进行预测与异常检测
- python|第十届泰迪杯数据挖掘大赛B题电力系统负荷预测