TransUnet官方代码测试自己的数据集(已训练完毕)

***************************************************

码字不易,收藏之余,别忘了给我点个赞吧!

***************************************************

---------Start

首先参考上一篇的训练过程,这是测试过程,需要用到训练过程的权重。

1. TransUnet训练完毕之后,会生成权重文件(默认保存位置如下),snapshot_path为保存权重的路径。

在这里插入图片描述
权重文件
在这里插入图片描述

2. 修改test.py文件

调整数据集路径。
在这里插入图片描述
训练和测试时的图像设置相同大小,并设置主干模型的名称同训练时一致。
在这里插入图片描述

配置数据集相关信息。
在这里插入图片描述
手动添加权重。
在这里插入图片描述

3. 设置DataLoader

设置DataLoader中参数num_workers=0。
在这里插入图片描述

4. 修改utils.py文件

替换utils.py中的test_single_volume函数,原网络输出的是0,1,2,3,4像素的图片,分别代表5个类别,直接显示均呈黑色。对此,我们通过像素调整,使每个类别呈现不同的颜色。

def test_single_volume(image, label, net, classes, patch_size=[256, 256], test_save_path=None, case=None, z_spacing=1):image, label = image.squeeze(0).cpu().detach().numpy(), label.squeeze(0).cpu().detach().numpy()_,x, y = image.shapeif x != patch_size[0] or y != patch_size[1]:#缩放图像符合网络输入image = zoom(image, (1,patch_size[0] / x, patch_size[1] / y), order=3)input = torch.from_numpy(image).unsqueeze(0).float().cuda()net.eval()with torch.no_grad():out = torch.argmax(torch.softmax(net(input), dim=1), dim=1).squeeze(0)out = out.cpu().detach().numpy()if x != patch_size[0] or y != patch_size[1]:#缩放图像至原始大小prediction = zoom(out, (x / patch_size[0], y / patch_size[1]), order=0)else:prediction = outmetric_list = []for i in range(1, classes):metric_list.append(calculate_metric_percase(prediction == i, label == i))if test_save_path is not None:a1 = copy.deepcopy(prediction)a2 = copy.deepcopy(prediction)a3 = copy.deepcopy(prediction)a1[a1 == 1] = 255a1[a1 == 2] = 0a1[a1 == 3] = 255a1[a1 == 4] = 20a2[a2 == 1] = 255a2[a2 == 2] = 255a2[a2 == 3] = 0a2[a2 == 4] = 10a3[a3 == 1] = 255a3[a3 == 2] = 77a3[a3 == 3] = 0a3[a3 == 4] = 120a1 = Image.fromarray(np.uint8(a1)).convert('L')a2 = Image.fromarray(np.uint8(a2)).convert('L')a3 = Image.fromarray(np.uint8(a3)).convert('L')prediction = Image.merge('RGB', [a1, a2, a3])prediction.save(test_save_path+'/'+case+'.png')return metric_list

**方便小伙伴理解这部分代码,特意做了个图,a1,a2,a3分别代表RGB三个通道,开始它们的值通过deepcopy函数直接赋值,故三者的值都是一样的。
这里拿类别1举例:a1[a12]=0代表R通道中输出结果为2的赋值0,
a2[a2
2]=255代表G通道中输出结果为2的赋值255,
a3[a3==2]=77代表B通道中输出结果为2的赋值77,(0,255,77)对应就是绿色,类别2就是绿色(轮子)。
然后通过Image.merge(‘RGB’, [a1, a2, a3])函数合并三个通道,此时prediction就成了三通道彩色图。

在这里插入图片描述
在这里插入图片描述

至此,设置完毕,右键run运行。

5. 测试结束

测试结束后,会在根目录下生成predictions文件夹,文件夹的内容如下。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44439.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenPCDet 训练自己的数据集详细教程!

文章目录 前言一、pcd转bin二、labelCloud 工具安装与使用三、训练仿写代码对pcdet/datasets/custom/custom_dataset.py进行改写新建tools/cfgs/dataset_configs/custom_dataset.yaml并修改新建tools/cfgs/custom_models/pointrcnn.yaml并修改其他调整事项 数据集预处理数据集训…

ChatGLM-6B模型训练自己的数据集

ChatGLM-6B模型训练自己的数据集 上期我主要分享了一下ChatGLM-6B官方模型的部署、官方数据集的微调、推理以及测试过程,这期我将主要分享一下使用ChatGLM-6B微调自己数据集的过程。上期链接 1.首先将自己处理好的数据集拷贝到’ChatGLM-6B/ptuning/’文件夹下&am…

刚拿到北京户口就离职,员工赔了180000!

推荐专门分享AI技术的公众号 关注后,回复:ChatGPT ,领取账号 公众号“互联网坊间八卦” 之所以写这个话题,是因为今天又看到了一个关于北京落户的案例。 前不久,北京市政府发布工作报告。数据中提到,2022年…

李彦宏宣布设立10亿创投基金促进大模型生态发展;Kindle中国电子书店停止运营;Bootstrap 5.3发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

汉王考勤管理系统 与服务器连接失败,汉王考勤管理系统

汉王考勤管理系统是一款功能强大的考勤管理软件,软件为用户提供了基本信息管理、人员排班管理、考勤处理与统计等多个不同模块,能够帮助用户对企业的的考勤进行统计与管理,而且能够支持一键生成各类报表,并支持以Excel等多种格式导出考勤信息,能够极大的提示用户的报表统计…

时间序列预测之DeepAR

目录 前言 一、模型介绍 1、模型框架介绍 2、训练策略 3、似然函数模型 4、损失函数 二、论文精华 1.尺度处理 三、仿真实验 1、数据集介绍 2、评价指标 2.1 评价指标1(分布式评估) 2.2 评价指标2(点预测评估) 2.3 定性分析 总结 前言 最近看论文《DeepAR:Probabil…

基于Prophet时间序列的监测值预测

留全部代码备份 通过facebook开源模型Prophet对未来时间内某基坑变形监控值进行预测,但该模型好像并不适用于这种施工过程中的数据预测,但是至少能预测,交差总没问题吧。预测10天。 import pandas as pd from matplotlib import pyplot as …

facebook时间序列预测算法prophet解读+实战

facebook时间序列预测算法prophet解读实战 原理解读一、时间序列的分解二、趋势项模型基于逻辑回归的趋势项定义变点(change point) 基于线性回归的趋势项变点的选择 三、季节性趋势四、节假日影响 模型实战 原理解读 prophet与常用的自回归时间序列预测…

Kaggle系列之预测泰坦尼克号人员的幸存与死亡(随机森林模型)

Kaggle是开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台,本节是对于初次接触的伙伴们一个快速了解和参与比赛的例子,快速熟悉这个平台。当然提交预测结果需要注册,这个可能需要科学上网了。 我们选择一个预测的入…

【时间序列预测】人口数量预测神经网络程序

下载完整代码 clc;clear; %导入1949年至2010年人口数据 dataimportdata(population_data.txt); lag3; %利用前3年数据做为输入,去预测下一年人口数量 nlength(data); %计算数据长度 %% %准备输入和输出数据 inputszeros(lag,n-lag); for i1:n-lag inpu…

Prophet:一种大规模时间序列预测模型

前言 Prophet是由facebook开发的开源时间序列预测程序,擅长处理具有季节性特征大规模商业时间序列数据。本文主要介绍了Prophet模型的设计原理,并与经典的时间序列模型ARIMA进行了对比。 1. Prophet模型原理 Prophet模型把一个时间序列看做由3种主要成分…

时间序列预测算法梳理(Arima、Prophet、Nbeats、NbeatsX、Informer)

时间序列预测算法梳理(Arima、Prophet、Nbeats、NbeatsX、Informer) Arima1. 算法原理2. 算法实现 Prophet1. 优点2. 算法实现3.算法api实现(fbprophet调api) Nbeats1. Nbeats优点2. Nbeats模型结构 NbeatsXInformer参考&#xff…

Prophet 时间序列预测

Prophet 允许使用具有指定承载能力的物流增长趋势模型进行预测。 我们必须在列中指定承载能力cap。在这里,我们将假设一个特定的值,但这通常是使用有关市场规模的数据或专业知识来设置的。 # Python df[cap] 8.5需要注意的重要事项是cap必须为数据框中…

时间序列预测方法之 DeepAR

本文链接:个人站 | 简书 | CSDN 版权声明:除特别声明外,本博客文章均采用 BY-NC-SA 许可协议。转载请注明出处。 最近打算分享一些基于深度学习的时间序列预测方法。这是第一篇。 DeepAR 是 Amazon 于 2017 年提出的基于深度学习的时间序列预…

【时间序列】初识时间序列预测神器 NeuralProphet 实战预测股票指数

历经神奇的2022年,终于迎来曙光的2023年,新的一年,MyEncyclopedia 会和小伙伴们一同学习思考实践。长风破浪会有时,直挂云帆济沧海!共勉之 NeuralProphet深度学习Prophet NeuralProphet 负有盛名,是 Facebo…

时序预测 | Python实现TCN时间卷积神经网络时间序列预测

时序预测 | Python实现TCN时间卷积神经网络时间序列预测 目录 时序预测 | Python实现TCN时间卷积神经网络时间序列预测预测效果基本介绍环境准备模型描述程序设计学习小结参考资料预测效果 基本介绍 递归神经网络 (RNN),尤其是 LSTM,非常适合时间序列处理。 作为研究相关技术…

使用sklearn.ensemble.RandomForestRegressor和GridSearchCV进行成人死亡率预测

原文链接:https://blog.csdn.net/weixin_44491423/article/details/127011461 本文借鉴博主hhhcbw实现方法完成随机森林回归预测成人死亡率,使用训练数据测试模型的最优得分R20.8161,在测试集上得分R20.5825 成年人死亡率指的是每一千人中15岁…

基于TCN时间序列预测Python程序

基于TCN预测模型 特色:1、单变量,多变量输入,自由切换 2、单步预测,多步预测,自动切换 3、基于Pytorch架构 4、多个评估指标(MAE,MSE,R2,MAPE等) 5、数据从excel文件中读取,更换简单…

时序预测 | Python实现Attention-TCN注意力机制时间卷积神经网络的多元时间序列预测

时序预测 | Python实现Attention-TCN注意力机制时间卷积神经网络的多元时间序列预测 目录 时序预测 | Python实现Attention-TCN注意力机制时间卷积神经网络的多元时间序列预测预测效果基本介绍环境配置程序设计模型效果参考资料预测效果 基本介绍 使用时间注意卷积神经网络进行…