from torchvision.transforms import transforms
import torch
import torchvision.models
from dataset import LungDetection
from torch.utils.data import DataLoader
from utils import detection_collate, draw_bounding_box, miou
import torch.optim as optim
from tqdm import tqdm
import numpy as np
# 超参数设置
TRAIN_IMAGE_PATH = './data/train/image' # 训练集路径
TRAIN_LABEL_PATH = './data/train/label' # 训练集路径
TEST_IMAGE_PATH = './data/test/image' # 训练集路径
TEST_LABEL_PATH = './data/test/label' # 训练集路径
BATCH_SIZE, ROW, COLUMN = 4, 2, 2 # batch size + 可视化图像的行列数
LEARNING_RATE = 0.00001
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'
EPOCHS = 50
# 预处理
transformer = transforms.Compose([transforms.ToTensor()])
# 加载训练集
trainSet = LungDetection(img_path=TRAIN_IMAGE_PATH,label_path=TRAIN_LABEL_PATH,transform=transformer)
trainLoader = DataLoader(trainSet, BATCH_SIZE, shuffle=True, collate_fn=detection_collate)
# 加载验证集
testSet = LungDetection(img_path=TEST_IMAGE_PATH,label_path=TEST_LABEL_PATH,transform=transformer)
testLoader = DataLoader(testSet, batch_size=BATCH_SIZE, shuffle=False, collate_fn=detection_collate)
# 建立模型
model = torchvision.models.detection.fasterrcnn_mobilenet_v3_large_fpn(weight=None, progress=True,num_classes=2)
# model = torchvision.models.detection.retinanet_resnet50_fpn(pretrained=False, progress=True, num_classes=2)
# model=torchvision.models.detection.ssd300_vgg16(pretrained=False, progress=True, num_classes=2)
model.to(DEVICE)
# 建立优化器
optimizer = optim.Adam(model.parameters(), lr=LEARNING_RATE)
# 训练函数
def train_fn(model, optimizer, trainloader, testloader, device, epochs):
for epoch in range(epochs):
loss_epoch = [] # 一个epoch训练损失
iou_epoch = [] # 一个epoch训练 iou
for images, labels in tqdm(trainloader): # 读取训练集
model.train()
images = list(image.to(device) for image in images) # 将数据放到 cuda 上
labels = [{k: v.to(device) for k, v in t.items()} for t in labels]
loss_dict = model(images, labels) # 前向传播
losses = sum(loss for loss in loss_dict.values()) # 损失求和
optimizer.zero_grad() # 梯度清零
losses.backward() # 反向传播
optimizer.step() # 梯度下降
losses = losses.data.cpu().numpy()
loss_epoch.append(losses) # 保留损失
with torch.no_grad():
model.eval() # 测试模式
try:
pred = model(images)
batch_iou = miou(truth=labels, prediction=pred) # 计算一个batch的平均iou
iou_epoch.append(batch_iou)
except:
continue
test_loss_epoch = [] # 一个epoch 的 loss
test_iou_epoch = [] # 一个epoch 的 iou
with torch.no_grad(): # 验证的时候,不需要backward
for images, labels in tqdm(testloader):
model.train() # 训练模式
images = list(image.to(device) for image in images)
labels = [{k: v.to(device) for k, v in t.items()} for t in labels]
loss_dict = model(images, labels)
losses = sum(loss for loss in loss_dict.values())
losses = losses.data.cpu().numpy()
test_loss_epoch.append(losses) # 一个batch 的loss
model.eval() # 测试模式
try:
pred = model(images)
test_batch_iou = miou(truth=labels, prediction=pred) # 计算一个batch的平均 iou
test_iou_epoch.append(test_batch_iou)
except:
continue
train_iou = np.array(iou_epoch).mean() # 将不同 batch 的 iou 求平均
train_loss = np.array(loss_epoch).mean() # 将不同 batch 的 loss 求均值
test_iou = np.array(test_iou_epoch).mean()
test_loss = np.array(test_loss_epoch).mean()
# 保留权重文件
if test_iou > 0.65:
static_dict = model.state_dict()
torch.save(static_dict, './log/pretrained_epoch_{},train_iou_{},test_iou_{}.pth'.format(epoch + 1, train_iou, test_iou))
print('epoch:', epoch + 1)
print('epoch_train_loss:', train_loss)
print('epoch_train_iou:', train_iou)
print('epoch_test_loss:', test_loss)
print('epoch_test_iou:', test_iou)
if __name__ == '__main__':
#model.load_state_dict(torch.load('./log/epoch_35,train_iou_0.9122412204742432,test_iou_0.6948733925819397.pth'))
train_fn(model, optimizer, trainLoader, testLoader, DEVICE, EPOCHS)
print(' training over !!!! ')
没有合适的资源?快使用搜索试试~ 我知道了~
Faster RCNN 对肺结节 目标检测
共504个文件
xml:248个
dcm:248个
py:4个
5 下载量 132 浏览量
2023-03-22
13:31:01
上传
评论 1
收藏 201.04MB ZIP 举报
温馨提示
Faster RCNN 对肺结节 目标检测
资源推荐
资源详情
资源评论
收起资源包目录
Faster RCNN 对肺结节 目标检测 (504个子文件)
R1.3.6.1.4.1.14519.5.2.1.6655.2359.109966216561744956925181663780.dcm 517KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.112117612686386550227313885529.dcm 517KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.111291125036777477823231595925.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.106132750323611720378826027039.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.107719719179525804005846365788.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.109710831291960568511054857254.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.108684581807165906982303539796.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.110167384551062794535438385870.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119550313692068795679291758022.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.114977645269946253731855480164.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.113001402130546828001186388226.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.102565658346784283278110452995.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.120047879518101447523750132875.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.108522609601500560523132057372.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100563540589982020589334970337.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.112983713581010663221149061702.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119376338762748441168378254802.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.114419390695216200085832334594.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.105073351965995374180477119675.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.115352420240789664292179987110.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.104845572852817237902898758096.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119152557920626484362399900800.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.113923527784656794467137987192.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.108009191551277048712581497851.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.114843294430285774575075756658.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.101473484436338981937259981712.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.108691477384373003071315395918.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.102244858466682341373503434705.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.110530822435353359080977938038.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.104347995705618738855207121146.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119666385387861394473090777159.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.114130704323647411199374011337.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119482026830473610448688773058.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100076578137995108916608372154.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119983552228265361942320185942.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100711050613761855156496841207.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.103052136391940527202522246522.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.114180725510041861654000184699.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.115554791564452743826422757726.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.115760446772493734303821445467.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.112254728605478366200482101324.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.113433802024057965636883386621.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.112879699348202293099151344357.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.102888975070755246278836376242.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.107697268906393297698409970764.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.105275314676282333431401997269.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.117393538159200661071837181766.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.116059031914184226344848841702.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.103623394824044731345102211780.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.107038112999599652790188384973.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.105402768593989805589089330224.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.101261893643388910144857197290.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.116854823833574678941947661340.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.111433252689817130615562349880.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119988047257200632873236116974.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100793466511946272712533388248.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.115265790184665484439714526693.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100119697645714392522767629509.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.116925723085093307711889307324.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.107137181427558164433379970439.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.109765323456452201712071682967.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.103923712676950877065423602169.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.115849043921831253743536252647.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.103662782690715585496613644898.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.108826942242695108299082487320.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.116421695315713839693191738126.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100913621228224561672876343339.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.108094226857443295677529260172.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.101891651428683164763030926663.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.114630301089341890631396973734.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.110437217882586203486758240646.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.111785565856024337469935254013.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.112981632192648413590000553147.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.120583062898871895012343770932.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100752576782590052443136605380.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.102637393384971197755576702626.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.118285603156422702048573776325.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.109982850406744181367283794645.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.117325043465038932380932783242.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.104750957426060478326456300320.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.120321169226519599406236058507.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.104837557978246005119724335731.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.117583543486676317002130774322.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.101872152587451684276429774646.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.113900067857404600445824873214.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.117540477883801141858535095533.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.103837929173084448738910364800.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.104402552355513806685855869817.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.117431004224865977488176379999.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.108143127758112682164263152715.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.115968120059620226755041374609.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.115872801438894443849620593472.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.120342006414977632068466738863.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.117110365156483056306094348203.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.105409374622518737989850983746.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.100844319407116132584400330338.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.101155717012770785808024836697.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.119897188954192952303598575605.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.116141338584640777493622546116.dcm 516KB
R1.3.6.1.4.1.14519.5.2.1.6655.2359.103089302336961162690414557673.dcm 516KB
共 504 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
听风吹等浪起
- 粉丝: 1w+
- 资源: 1289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功