Python CT图像预处理——nii格式读取、重采样、窗宽窗位设置
文章目录
- nii格式CT数据读取
- 读写nii格式文件
- 查看
- 重采样
- 窗宽窗位设置
- 方法一:手动设置窗宽窗位
- 方法二:
nii格式CT数据读取
遇到nii格式的CT数据,可以通过nibabel包进行数据的读、写、查看等操作。下面列出常见操作。
读写nii格式文件
nibabel读取数据会将图像旋转九十度,也就是各轴的对应关系为[z,x,y]
import nibabel as nb
img = nb.load(xxx.nii.gz) #读取nii格式文件
img_affine = img.affine
data = img.get_data()
存储nii格式文件,保存时要联通affine矩阵一起保存
import nibabel as nb
nb.Nifti1Image(data,img_affine).to_filename(xxx.nii.gz)
查看
from nibabel.viewers import OrthoSlicer3D
OrthoSlicer3D(data.transpose(1,2,0)).show()
重采样
CT图像的重采样是为了使体数据中大小不同的体素变得大小相同。由于CT不同轴的体素尺寸、粗细粒度不同,直接使用不利于进行深度模型的训练和推理。
首先我们可以获取先从nii文件的头文件中获取各轴单位体素对应的空间距离。
header = img.header
print(header)
打印出来可见如下信息:
print(header)
<class 'nibabel.nifti1.Nifti1Header'> object, endian='<'
sizeof_hdr : 348
data_type : b''
db_name : b''
extents : 0
session_error : 0
regular : b'r'
dim_info : 0
dim : [ 3 512 512 81 1 1 1 1]
intent_p1 : 0.0
intent_p2 : 0.0
intent_p3 : 0.0
intent_code : none
datatype : int16
bitpix : 16
slice_start : 0
pixdim : [-1. 0.881 0.881 5. 0. 0. 0. 0. ]
vox_offset : 0.0
scl_slope : nan
scl_inter : nan
slice_end : 0
slice_code : unknown
xyzt_units : 10
cal_max : 0.0
cal_min : 0.0
slice_duration : 0.0
toffset : 0.0
glmax : 0
glmin : 0
descrip : b'Time=151745.150'
aux_file : b'Venous_Phase'
qform_code : scanner
sform_code : scanner
quatern_b : 0.0
quatern_c : 1.0
quatern_d : 0.0
qoffset_x : 217.3328
qoffset_y : -225.04568
qoffset_z : 1390.0
srow_x : [ -0.881 -0. 0. 217.3328]
srow_y : [ 0. 0.881 0. -225.04568]
srow_z : [ 0. 0. 5. 1390.]
intent_name : b''
magic : b'n+1'
关键字段含义如下:
sizeof_hdr
sizeof_hdr 是保存文件的头文件大小,如果是NIFTI-1或者ANALYZE格式的文件sizeof_hdr=348.
dim_info
:dim_info字段存储着频率编码方向(1,2,3),相位编码方向(1,2,3)和采集期间层选择方向(1,2,3),对于径向采集来讲,频率编码和相位编码都设置为0。
dim
:short dim[8]保存着前面提到的图像的维度信息。如果第0维不是(1-7)之间的数字,那么这个数据具有相反的字节顺序,所以应该进行字节交换(NIFTI标准没有提供字节顺序的字段,提倡使用dim[0])。
datatype
中存储的是数据的类型。
bitpix
字段必须与datatype中的代码所对应的bit(s)/pix的大小相等。
slice切片信息
包含字段:slice_start
,slice_end
, slice_code
, slice_duration
slice_duration是存储功能磁共振成像采集的时间相关信息,需要与dim_info字段一起使用。
pixdim
体素维度:每个体素维度信息都保存在pixdim中,各自对应dim,但pixdim[0]有特殊意义,其值只能是-1或1。前四个维度将在xyzt_units字段中指定。pixdim[1]对应x轴,pixdim[2]对应y轴,pixdim[3]对应z轴
vox_offset
体素偏移量:vox_offset指 单个文件(.nii)图像数据的字节偏移量。
在重采样中主要需要使用到pixdim这一个字段的数据。
pixdim : [-1. 0.881 0.881 5. 0. 0. 0. 0. ]
此外,我们还需要知道各轴的体素总数:
width, height, channel = img.dataobj.shape
print(width, height, channel)
结果为:
512 512 81
即x
轴数据的空间大小为512*pixdim[1]=451.07199mm
,y
轴数据的空间大小为512*pixdim[2]=451.07199mm
,z
轴数据的空间大小为81*pixdim[3]=405mm
。
获得了各轴实际对应的空间大小后,就可以根据重采样后期望各体素在某个轴上单位体素对应的空间大小,算各轴重采样后的体素总数。
此处以各轴重采样为1mm spacing为例。这里使用到的是skimage的transform函数,调用resize使重采样后的数据具有指定的shape。
### Get original space
width, height, channel = img.dataobj.shape
ori_space = [width,height,channel]
# Resample to have 1.0 spacing in all axes
spacing = [1.0, 1.0, 1.0]
data_resampled = resample(data,ori_space, header, spacing)
OrthoSlicer3D(data_resampled).show()
def resample(data,ori_space, header, spacing):
### Calculate new space
new_width = round(ori_space[0] * header['pixdim'][1] / spacing[0])
new_height = round(ori_space[1] * header['pixdim'][2] / spacing[1])
new_channel = round(ori_space[2] * header['pixdim'][3] / spacing[2])
new_space = [new_width, new_height, new_channel]
data_resampled = skimage.transform.resize(data,new_space,order=1, mode='reflect', cval=0, clip=True, preserve_range=False, anti_aliasing=True, anti_aliasing_sigma=None)
return data_resampled
窗宽窗位设置
以下文字内容来源于文章:https://blog.csdn.net/qq_44289607/article/details/123394110?spm=1001.2014.3001.5502
CT值属于医学领域的概念,通常称亨氏单位(hounsfield unit,HU),反映了组织对X射线的吸收程度。黑影表示低吸收区,即低密度区,如含气体多的肺部;白影表示高吸收区,即高密度区,如骨骼。
对于CT图像来说,它的HU值从负几千到正几千都有,直接显示图像的亮度和对比度不能充分突出关键部分。这里所指的“关键部分”在 CT 里的例子有软组织、骨头、脑组织、肺、腹部等等。因为显示器往往只有 8 bit, 而数据有 12 至 16 bits。也就是说,不能直接将 CT 值作为传统意义上的像素值进行输出, 而是要经过一个变换,或者称其为映射。
针对这些问题,研究人员提出一些要求 (requirements),变换应该尽量满足:
要求一:充分利用 0-255 间的显示有效值域
要求二:尽量减少值域压缩带来的损失
要求三:不能损失应该突出的组织部分
医学图像领域的窗口技术,包括窗宽(window width)和窗位(window center),用于选择感兴趣的CT值范围。因为各种组织结构或病变具有不同的CT值,因此欲显示某一组织结构细节时,应选择适合观察该组织或病变的窗宽和窗位,以获得最佳显示。窗宽和窗位分别对应图像的对比度与亮度。
注:1)窗宽窗位是CT图像特有的概念,MRI图像中可没有此概念2)CT图像必须西安转换成HU值再做窗宽窗位调整
窗宽是CT图像上显示的CT值范围,在此CT值范围内的组织和病变均以不同的模拟灰度显示。而CT值高于此范围的组织和病变,无论高出程度有多少,均以白影显示,不再有灰度差异; 反之,低于此范围的组织结构,不论低的程度有多少,均以黑影显示,也无灰度差别。增大窗宽,则图像所示CT值范围加大,显示具有不同密度的组织结构增多,但各结构之间的灰度差别减少。减小窗宽,则显示的组织结构减少,然而各结构之间的灰度差别增加。如观察脑质的窗宽常为-15~+85H,即密度在-15 ~+85H范围内的各种结构如脑质和脑脊液间隙均以不同灰度显示。而高于+85H的组织结构如骨质几颅内钙化,其间虽有密度差,但均以白影显示,无灰度差别;而低于-15H组织结构如皮下脂肪及乳突内气体均以黑影显示,其间也无灰度差别。
窗位是窗的中心位置,同样的窗宽,由于窗位不同,其所包括的CT值范围的CT值也有差异。例如窗宽同为100H,当窗位为0H时,其CT值范围为-50 ~ +50H ; 如窗位为+35H时,则CT值范围为-15~+85H。通常,欲观察某以组织结构及发生的病变,应以该组织的CT值为窗位。例如脑质CT值约为+35H,则观察脑组织及其病变时,选择窗位以+35H为妥。
未设置时,图像显示如下图
以下为两种窗框窗位的设置方式:
方法一:手动设置窗宽窗位
根据常用的预设值设置窗宽窗位。实例中使用的为腹部ct,常用的预设值为窗宽 300-500,窗位 30-50。以下示例中使用窗宽400,窗位40。
w_width = 400
w_center = 40
data_adjusted1 = adjustMethod1(data_resampled,w_width,w_center)
def adjustMethod1(data_resampled,w_width,w_center):
val_min = w_center - (w_width / 2)
val_max = w_center + (w_width / 2)
data_adjusted = data_resampled.copy()
data_adjusted[data_resampled < val_min] = val_min
data_adjusted[data_resampled > val_max] = val_max
return data_adjusted
设置窗宽窗位之后,对比度与亮度有了明显的改善。
方法二:
如果存在目标组织的mask,我们可以将对应的组织提取出来,统计相应的最大值和最小值,并用其计算窗宽窗位。
当然该方法是在mask存在的情况下才能实现。
优点:每个case的窗宽窗位依据案例量身定做。相较于整个数据集用统一的窗宽窗位,或者采用cut off,有无可比拟的优点。
重采样和窗宽窗位调整参考以下几篇文章:
https://blog.csdn.net/qq_46511579/article/details/118441519
https://blog.csdn.net/qq_44289607/article/details/123495983
https://blog.csdn.net/qq_44289607/article/details/123394110?spm=1001.2014.3001.5502
相关文章:
python学生成绩管理系统【完整版】
✅作者简介:大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:python 💬推荐一款模拟面试、刷题神器Ǵ…...
Python数据分析案例07——二手车估价(机器学习全流程,数据清洗、特征工程、模型选择、交叉验证、网格搜参、预测储存)
案例背景 本次案例来自2021年matchcop大数据竞赛A题数据集。要预测二手车的价格。训练集3万条数据,测试集5千条。官方给了二手车的很多特征,有的是已知的,有的是匿名的。要求就是做模型去预测测试集的二手车的价格。价格是一个连续变量&…...
vscode运行python程序
系统:Ubuntu18.04 一、安装python插件 打开vscode,找到最右侧的Extensions,在上方搜索栏搜索python如大红框所圈,点击Install,安装即可。 二、创建python项目(.py存放的文件夹) 笔者习惯存放…...
【yolov5】pytorch模型导出为onnx模型
博主想拿官网的yolov5训练好pt模型,然后转换成rknn模型,然后在瑞芯微开发板上调用模型检测。但是官网的版本对npu不友好,所以采用改进结构的版本: 将Focus层改成Conv层将Swish激活函数改成Relu激活函数 自带的预训练模型是预测80类…...
毕业设计-基于大数据招聘岗位可视化系统-python
目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…...
No module named ‘cv2‘ 解决办法 (No module named ‘numpy‘ 等所有报错均可解决)
实在不行可以私信我解决! 1.关于离线pip install 库爆winErro[10061]的问题原因 使用了局域网,没有链接到网络 1.1 解决方法: 1.链接网络 2.假如离线安装 pip install imgaug.whl 库,但是imgaug依赖 shapely库。因此要安装imgaug库之前&…...
详细分析Python中深浅拷贝的区别
简而言之: 深浅拷贝的区别关键在于拷贝的对象类型是否可变。 我们可以总结出以下三条规则: 对于可变对象来说,深拷贝和浅拷贝都会开辟新地址,完成对象的拷贝而对于不可变对象来说,深浅拷贝都不会开辟新地址ÿ…...
django+drf_haystack+elasticsearch+ik+高亮显示
0.前提准备 环境 1. 准备好django2.2 2. 创建一个app 3.elasticsearch7.5启动 4.可视化工具(实在没有,也没啥) models.py from django.db import models# Create your models here.class Article(models.Model):title models.CharField(verbose_name文章标题, max_length22…...
头歌Python数据框、序列定义及数据处理应用实验闯关
粘贴答案不是目的 把Python学会这才叫做意义 童年的纸飞机 现在终于飞回我手里~~ 文章目录第1关:序列和数据框第2关:外部数据文件读取第3关:逻辑索引、切片方法,groupby 分组计算函数应用第4关:数据框关联操作第5关…...
使用pip下载时提示“You are using pip version 8.1.1, however version 22.1 is available.“
在使用pip install下载其他包时,报了错,如图: 提示:“You are using pip version 8.1.1, however version 22.1 is available. You should consider upgrading via the ‘pip install --upgrade pip’ command.” 根据提示&#…...
YOLOV8-gradcam 热力图可视化 即插即用 不需要对源码做任何修改!
YOLOV8 GradCam 热力图可视化. 本文给大家带来yolov8-gradcam热力图可视化,这个可视化是即插即用,不需要对源码做任何修改喔!给您剩下的不少麻烦! 代码链接:yolo-gradcam 里面还有yolov5和v7的热力图可视化代码&#…...
Anaconda创建虚拟环境并在Pycharm中使用创建好的环境
Anaconda创建虚拟环境并在Pycharm中使用创建好的环境1.Anaconda创建虚拟环境2.Pycharm中使用创建好的环境3.2022.12.8更新Anaconda的优势在于可以很方便地管理自己的工具包、开发环境和Python版本,同时还能使用不同的虚拟环境隔离不同要求的项目。假如你已经安装好了…...
python二级题库(百分之九十原题) 刷题软件推荐 第二套
目录 一、选择题 二、基本操作 三、简单应用 四、综合应用 刷题软件(模拟python二级考试): 公众h:露露IT 回复:python二级 一、选择题 1、下列叙述中正确的是()。 A.在栈中,栈…...
【模拟 简易银行系统~python】
目录~python面向对象编程之模拟银行系统相关程序代码如下:运行效果如下:pandas 每日一练:运行结果为:66、绘制sku_cost_prc的密度曲线运行效果为:67、计算后一天与前一天sku_cost_prc的差值运行结果为:68、…...
【YOLOv7/YOLOv5系列改进NO.52】融入YOLOv8中的C2f模块
文章目录 前言一、解决问题二、基本原理三、YOLOv5添加方法四、YOLOv7添加方法五、总结前言 作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点…...
PyTorch 单机多GPU 训练方法与原理整理
PyTorch 单机多GPU 训练方法与原理整理 这里整理一些PyTorch单机多核训练的方法和简单原理,目的是既能在写代码时知道怎么用,又能从原理上知道大致是怎么回事儿。 就目前来说,并行训练的方法可以根据的不同的并行对象分为——模型并行和数据…...
anaconda创建、删除虚拟环境指令
使用conda创建、删除虚拟环境指令{\color{Red}使用conda创建、删除虚拟环境指令}使用conda创建、删除虚拟环境指令 使用conda创建、删除虚拟环境指令{\color{Red}使用conda创建、删除虚拟环境指令}使用conda创建、删除虚拟环境指令 一、创建虚拟环境 二、查看虚拟环境 三、激活…...
NCDC气象数据的提取与处理(二):python批量转换isd-lite数据为xlsx
目录 1.完整代码(部分代码参考https://zhuanlan.zhihu.com/p/556150264) 2.工作过程 2.1输入 2.2过程 3.实际效果 本例使用的相关数据及代码可见 链接:https://pan.baidu.com/s/1EYE0U7RrHSGGk3vptZyNVg 提取码:6666 书接上…...
MD5密码实验——Python实现(完整解析版)
文章目录更新:前言实验环境实验内容实验操作步骤1.初始化四个缓冲区2.设置常数表、位移位数等参数3.增加填充4.分组处理5.输出处理实验结果实验心得实验代码MD5-Python.py更新: 感谢评论区的大佬指出错误,现已改进代码 之前的错误在于没有考…...
如何在vscode中下载python第三方库(jieba和wordcloud为例)
本文由来 本来我并不想写文章的,但是我发现,对于一个0基础的小白vscode用户而言,想完整的下载一个第三方库还是存在一定的问题,并且我在搜索文章的时候发现,完全没有小白教程,太难了,所以说我就…...
python安装使用pip安装numpy
相信大家最近都在忙,因为到开学和上班的时候了,我最近也很忙,忙的快要流泪,这不是要考计算机三级了吗!买了好厚一本书,备战过程中,最近洗头一次掉了100根不止的头发,有点恐惧&#x…...
yolov5ds-断点训练、继续训练、先终止训练并调整最终epoch(yolov5同样适用)
目录参考链接1. 训练过程中中断了,继续训练如果觉得数值差不多稳定了,但是距离最终设置的epoch还很远,所以想要停止训练但是又得到yolov5在运行完指定最大epoch后生成的一系列map、混淆矩阵等图2. 训练完原有epoch,但还继续训练&a…...
openCV第一篇
文章目录 前言:计算机眼中的图片 1. 图片的读取与显示 1.1 图片的读取 1.2 显示的图片 1.2.1 显示原始图片 1.2.2 灰度图 1.3 BGR转换成灰度图、RGB 2. 保存图片 3. 视频的读取与显示 4. 截取图像部分 5. 颜色通道提取 6. 边界填充 7. 数值计算 8.…...
基于Python构建机器学习Web应用
目录 一、内容介绍 1.Onnx模型 ①skl2onnx库安装 2.Netron安装 二、模型构建 1.数据加载 2.划分可训练特征与预测标签 3.训练模型 ①第三方库导入 ②数据集划分 ③SVC模型构建 ④精度评价 二、模型转换及可视化 1.参数配置 2.Onnx模型生成 3.可视化模型 四、构…...
python - 密码加密与解密
Python之密码加密与解密 - 对称算法一、对称加密1.1 安装第三方库 - PyCrypto1.2 加密实现二、非对称加密三、摘要算法3.1 md5加密3.2 sha1加密3.3 sha256加密3.4 sha384加密3.5 sha512加密3.6 “加盐”加密由于计算机软件的非法复制,通信的泄密、数据安全受到威胁。…...
百度飞桨PaddleSpeech的简单使用
PaddleSpeech 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型,一些典型的应用示例如下:语音识别、语音翻译 (英译中)、语音合成、标点恢复等。…...
Python数据标准化
目录 一.数据标准化方式 1.实现中心化和正态分布的Z-Score 2.实现归一化的Max-Min 3.用于稀疏数据的MaxAbs 4.针对离群点的RobustScaler 二.Python针对以上几种标准化方法处理数据 三.总结 一.数据标准化方式 1.实现中心化和正态分布的Z-Score Z-Score标准化是基于原…...
Pycharm无法下载汉化包,一招教你搞定
Pycharm无法下载汉化包,一招教你搞定Pycharm直接导入汉化包Pycharm 无法采用自带的插件安装汉化包Pycharm直接导入汉化包 Pycharm 是可以直接导入汉化包的,这为很多初学者省区了不少麻烦。具体就是: 1:点击pycharm界面右上角的设…...
python成功实现“高配版”王者小游戏?【赠源码】
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 本游戏完整源码、素材: 点击此处跳转文末名片获取 咳咳,又是一款新的小游戏,就是大家熟悉的王者~ 来看我用python来实现高(di)配版的王者 是一款拿到代码运行后,…...
【项目实战】Python实现多元线性回归模型(statsmodels OLS算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 回归问题是一类预测连续值的问题,而能满足这样要求的数学模型称作回归模型,本项…...
graphviz安装教程(2022最新版)初学者适用
1、首先在官网下载graphviz 下载网址:https://www.graphviz.org/download/ 2、安装。 打开第一步已经下载好的软件。点击下一步,在安装路径选择时可将安装路径修改为 D:\graphviz 接着一直点下一步,即可安装完成。 3、配置环境变量 右键…...
【Windows】搭建Pytorch环境(GPU版本,含CUDA、cuDNN),并在Pycharm上使用(零基础小白向)
文章目录前言一、安装CUDA1、检查电脑是否支持CUDA2、下载并安装CUDA3、下载并安装cuDNN二、安装Pytorch1、安装Anaconda2、切换清华镜像源3、创建环境并激活4、输入Pytorch安装命令5、测试三、在Pycharm上使用搭建好的环境参考文章前言 本人纯python小白,第一次使用…...
Tensorflow与CUDA、cudnn版本对应关系
不同版本的Tensorflow需对应不同的CUDA和cudnn版本,否者容易安装失败。可按下图所示,根据想要安装的Tensorflow版本,选择对应版本的CUDA和cudnn。 其中CUDA的下载链接为: CUDA Toolkit Archive | NVIDIA Developer cudnn下载链…...
ImportError: cannot import name ‘Literal‘ from ‘typing‘ (D:\Anaconda\envs\tensorflow\lib\typing.py)
报错背景: 因为安装tensorflow-gpu版本需要,我把原来的新建的anaconda环境(我的名为tensorflow)中的python3.8降为了3.7。 在导入seaborn包时,出现了以下错误: ImportError: cannot import name Literal …...
100天精通Python(数据分析篇)——第67天:Pandas数据连接、合并、加入、添加、重构函数(merge、concat、join、append、stack、unstack)
文章目录 一、数据连接(pd.merge)1. left、right2. how3. on4. left_on、right_on5. sort6. suffixes7. left_index、right_index二、数据合并(pd.concat)1. index 没有重复的情况2. index 有重复的情况3. DataFrame合并时同时查看行索引和列索引有无重复三、数据加入(pd.…...
yolov5 优化系列(三):修改损失函数
1.使用 Focal loss 在util/loss.py中,computeloss类用于计算损失函数 # Focal lossg h[fl_gamma] # focal loss gammaif g > 0:BCEcls, BCEobj FocalLoss(BCEcls, g), FocalLoss(BCEobj, g)其中这一段就是开启Focal loss的关键!!&…...
Python中数组切片的用法详解
Python中数组切片的用法详解一、python中“::-1”代表什么?二、python中“:”的用法三、python中数组切片三、numpy中的整数数组索引四、numpy中借助【切片 : 或 …与索引数组】组合进行复杂切片五、布尔索引六、花式索引一、python中“::-1”代表什么? …...
python 安装whl文件
前言 WHL文件是以Wheel格式保存的Python安装包,Wheel是Python发行版的标准内置包格式。在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件,这样就使得它可以在不具备编译环境的条件下&#…...
Pycharm中安装pytorch
配置虚拟环境 为什么要安装虚拟环境?虚拟环境:把一部分内容独立出来,称之为容器。在容器中,安装我们自己想要的东西,比如不容版本的依赖包。各容器之间相互独立,互不影响。比如下载完 Anaconda 之后&#…...
Package | 解决 module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipeline‘
. 问题背景 由于这个问题出现了两回,决定记录一下。实验背景是使用opencv python库进行数据预处理,遇到报错信息如下: “ import cv2 File “/opt/conda/lib/python3.8/site-packages/cv2/init.py”, line 181, in bootstrap() File “/op…...
如何在项目中搭建python接口自动化框架?
文章目录前言一、框架目录介绍1、common模块读取Excel代码读取yaml代码(支持场景关联)jsonpath断言封装代码requests二次封装(get、post)configparser读取配置文件递归遍历字典常用方法log日志封装2、conf模块3、data模块4、case模…...
应用统计432考研复试复试提问总结精简版【一】
一、区间估计与假设检验的联系与区别 联系:二者利用样本进行推断,都属于推断统计区别: 原理: 前者是基于大概率,后者基于小概率;统计量:前者是构造枢轴量(不含未知参数,…...
Pytorch模型量化
在深度学习中,量化指的是使用更少的bit来存储原本以浮点数存储的tensor,以及使用更少的bit来完成原本以浮点数完成的计算。这么做的好处主要有如下几点: 更少的模型体积,接近4倍的减少;可以更快的计算,由于…...
已解决Encountered error while trying to install package.> lxml
已解决(pip安装第三方模块lxml模块报错)Building wheels for collected packages: lxml Building wheel for lxml (setup.py) … error error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully. note: This error o…...
距离度量 —— 闵可夫斯基距离(Minkowski Distance)
Python学习系列文章:👉 目录 👈 文章目录一、概述二、计算公式1. 闵氏距离公式2. 闵氏距离的参数 p3. 闵氏距离的缺点一、概述 闵可夫斯基距离 (Minkowski Distance),也被称为 闵氏距离。它不仅仅是一种距离,而是将多…...
python(模块)xlwt
目录一、xlwt简介二、xlwt语法1、模块安装2、模块导入3、向xls文件中写入内容4、设置写入文件的格式4.1 字体设置(font)4.2 背景颜色设置(pattern)4.3 边框设置(borders)4.4 对齐方式设置(align…...
Pytorch中torch.unsqueeze()和torch.squeeze()函数解析
一. torch.squeeze()函数解析 1. 官网链接 torch.squeeze(),如下图所示: 2. torch.squeeze()函数解析 torch.squeeze(input, dimNone, outNone) squeeze()函数的功能是维度压缩。返回一个tensor(张量),其中 input…...
python绘制相关系数热力图
python绘制相关系数热力图一.数据说明和需要安装的库二.准备绘图三.设置配色,画出多幅图全部代码:本文讲述如何利用python绘制如上的相关系数热力图一.数据说明和需要安装的库 数据是31个省市有关教育的12个指标,如下所示。,在文…...
DeepSpeed使用指南(简略版)
现在的模型越来越大,动辄几B甚至几百B。但是显卡显存大小根本无法支撑训练推理。例如,一块RTX2090的10G显存,光把模型加载上去,就会OOM,更别提后面的训练优化。 作为传统pytorch Dataparallel的一种替代,D…...
【Python】tqdm 介绍与使用
文章目录一、tqdm 简介二、tqdm 使用1. 基于迭代对象运行: tqdm(iterator)2. tqdm(list)3. trange(i)4. 手动更新参考链接一、tqdm 简介 tqdm 是一个快速,可扩展的 Python 进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装…...