- 博客(163)
- 资源 (40)
- 收藏
- 关注
原创 VTK交互-vtkBoxWidget2
在这个设计中,术语交互是指小部件中执行事件处理的部分,而表示则对应于用来表示小部件的vtkProp(或子类vtkWidgetRepresentation)。正如之前我们讨论的那样,如果对Widget默认的事件绑定不满意,需要根据自己习惯定义的事件绑定,可以使用VTKWidgetEventTranslator类。虽然每个Widget都提供了不同的功能以及不同的API,但是,Widget的创建以及使用基本都是类似的。在窗口中实现自己的小部件,如果有交互,就要写自己的Representation和Widget。
2023-05-10 18:11:48 2951 1
原创 MONAI-LayerFactory设计与实现
用于创建图层的工厂对象,这使用给定的工厂函数来实际产生类型或构建可调用程序。这些函数是通过名称来参考的,可以在任何时候添加。用到的关键技术点:在给定的名称下将工厂函数添加到此对象中。装饰器,用于添加一个具有给定名称的工厂函数。获取给定工厂名称和参数的构造函数。获取给定的名称或名称/参数对。如果是一个可调用的,它被认为是构造函数本身,并被返回。本身并被返回,否则它应该是工厂名称或包含名称和参数的一对。如果是一个工厂名称,则返回它,否则表现为继承。这允许将工厂名称作为常量来引用例如,表示一个带有工
2023-03-29 16:15:40 1381
原创 MONAI-增强版UNet
对UNet不了解的,可以参看动手实现基于pytorch框架的UNet模型对resnet不熟悉的同学可以参考经典网络架构学习-ResNet。
2023-03-29 16:14:26 2604
原创 Swin-transformer详解
这篇论文提出了一个新的 Vision Transformer 叫做 Swin Transformer,它可以被用来作为一个计算机视觉领域一个通用的骨干网络.但是直接把Transformer从 NLP 用到 Vision 是有一些挑战的,这个挑战主要来自于两个方面一个就是尺度上的问题。因为比如说现在有一张街景的图片,里面有很多车和行人,里面的物体都大大小小,那这时候代表同样一个语义的词,比如说行人或者汽车就有非常不同的尺寸,这种现象在 NLP 中就没有。
2023-03-20 00:37:59 7556 2
原创 MONAI-DiceLoss
include_background: 如果为True,背景(通道索引0)参与计算。如果非背景分段与总图像大小相比很小,它们可能被来自背景的信号所淹没,所以在这种情况下排除背景有助于收敛。to_onehot_y:否将y转换为one-hot格式。默认为False。sigmoid: 如果为 “真”,则对预测结果应用一个sigmoid函数。softmax : 如果为 “真”,则对预测结果应用一个softmax函数。
2022-10-24 16:04:36 3127
原创 pytorch中函数参数dim的理解
对于刚入门的新手来说,Torch API中的维度真的很迷惑人.例如 torch.sum(x, dim=0) 是按着行相加呢,还是列相加?还有TopK,softmax等函数。
2022-08-28 22:55:35 2210
原创 pytorch view()和reshape() 详解
两者都是用来重塑tensor的shape的。view只适合对满足连续性条件(contiguous)的tensor进行操作,并且该操作不会开辟新的内存空间,只是产生了对原存储空间的一个新别称和引用,返回值是视图。reshape对适合对满足连续性条件(contiguous)的tensor进行操作返回值是视图,否则返回副本(此时等价于先调用contiguous()方法在使用view())考虑内存的开销而且要确保重塑后的tensor与之前的tensor共享存储空间,那就使用view。...
2022-08-27 21:13:33 1270 1
原创 UNETR 论文精解
本文会结合论文UNETR: Transformers for 3D Medical Image Segmentation和代码深入讲解。阅读这篇文章之前最好了解UNET网络和Transformer网络,我之前的博文有总结过,可以参考下。动手实现基于pytorch框架的UNet模型以及Transformer 代码详解(Pytorch版)推荐阅读的UNETR代码实现本文采用的tamasino52实现的UNETR来讲解的,主要原因是tamasino52主要用pytorch中的API实现,而且只有一个py文件,也比
2022-08-14 14:11:12 4139 1
转载 Python Web框架(Django,Flask,FastAPI)
框架是用来帮助我们提升效率,节省时间,避免处理那些低级细节的,如果能达到这个目标,就是一个合适的框架。选择合适的框架,会事半功倍。Python 领域,开发 Web 应用程序的三个主流框架是 Django,Flask 和 FastAPI。它们都非常优秀,但有各自的特点。仔细比较之后,你也许可以选择最适合你的那一个。总而言之,如果你想构建健壮的全栈式网站,那么 Django 是完美的选择,因为它具有多种功能并且在生产中运行良好。...
2022-08-07 01:38:10 1632
原创 MONAI_Label 安装试用
安装流程 安装服务器MONAI Label以下安装流程是在ubuntu20.04 x64平台上执行的安装 pytorchpip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113安装 monialabelpip install monailabel执行命令后会安装很多的依赖库检查安装是否成功monailabel -h下载Sample Apps和dat
2022-08-06 00:40:35 2166
原创 Transformer 代码详解(Pytorch版)
前言基于上一篇经典网络架构学习-Transformer的学习,今天我们来使用pytorch 搭建自己的transformer模型,加深对transformer的理解,不仅在NLP领域绕不开transformer,而且在CV领域也是很火热,很多模型都用到了注意力机制。Transformer完整代码安装好pytorch开发环境,可以直接跑的。也可以直接用cpu跑我下面的transformer代码,数据集比较小,在2G内存就够了。# ===============================
2022-08-05 23:53:27 50080 32
原创 经典网络架构学习-ResNet
该论文的四位作者何恺明、张祥雨、任少卿和孙剑如今在人工智能领域里都是响当当的名字,当时他们都是微软亚研的一员。微软亚研是业内为数不多的,能够获得科技巨头持续高投入的纯粹学术机构。ResNet论文被引用数量悄然突破了10万加。更深的神经网络更难训练。我们提出了一个残差学习框架,以减轻训练的网络,这些网络比以前使用的网络要深得多。我们明确地将各层重新表述为学习参考层输入的残差函数(residualfunctions),而不是学习未参考的函数(unreferencedfunctions)。。。。了第一名。...
2022-07-21 12:22:24 1899
原创 经典网络学习-ResNet代码实现
基于上一篇理论分析,今天我们探讨学习下ResNet的代码实现,如果没有看过建议先看下。在我写这篇前,我也调研了网上的其他实现,都不如pytorch官方源码实现好,所以官方版本讲解如何实现resNetpytorchresnet源码链接#定义3x3带padding的卷积defconv3x3(in_planes所以,卷积之后,如果要接BN操作,最好是不设置偏置,因为不起作用,而且占显卡内存。...
2022-07-20 01:27:06 1673
原创 经典网络架构学习-VGG
本篇博文将介绍一下在ImageNet 2014 年斩获目标定位竞赛的第一名,图像分类竞赛的第二名的网络结构VGG。VGG 是 Visual Geometry Group 的缩写,是这个网络创建者的队名,作者来自牛津大学.VGG论文《Very Deep Convolutional Networks for Large-Scale Image Recognition》作为一篇会议论文在2015年的ICLR大会上发表Visual Geometry Group实验室链接:https://www.robots.ox.
2022-07-14 12:42:02 4221
原创 经典网络架构学习-LeNet
前言说起深度学习目标检测算法,就不得不提 LeNet- 5 网络。LeNet-5由LeCun等人提出于1998年提出,是一种用于手写体字符识别的非常高效的卷积神经网络。出自论文《Gradient-Based Learning Applied to Document Recognition》网络结构输入 → 卷积 → 池化 → 卷积 → 池化 → 卷积(全连接) → 全连接 → 输出整个 LeNet-5 网络总共包括7层(不含输入层),分别是:C1、S2、C3、S4、C5、F6、OUTPUT。注意:
2022-07-14 12:18:28 1712
翻译 经典网络架构学习-Transformer
transformer对刚入门深度学习的我来说,太难懂了,从网上查了很多博客,大多文章都来自The Illustrated Transformer。视频链接。这篇文章的图太生动形象了,容易理解。下面就翻译下这篇文章吧,加深记忆。如果你是刚入门transformer,强烈建议你好好阅读本文或者原文。网上太多基于这篇文章的衍生文章,而且写的并不好懂,你看完这篇文章,在看我给你的链接参考文章,会更容易懂。首先,我们先将模型视为一个黑盒。在机器翻译应用程序中,它将采用一种语言的句子,然后以另一种语言输出其翻译弹
2022-07-13 11:12:22 10522 2
原创 YOLO-Universal Anatomical Landmark Detection论文精读
论文《You Only Learn Once: Universal Anatomical LandmarkDetection》提出了一个通用的解剖地标检测的架构模型。You Only Learn Once(你只学一次),这个是一个新的概念,我的理解就是:我们可以不用为某一个数据集单独学习或者构建模型,而是可以混合所有数据集,然后进行一次学习就够了。而且论文作者说了,在这项工作中,是第一个提出基于一次学习,并开发一个通用的模型在混合数据集上实现端对端的多个地标检测任务。定性和定量的实验结果表明,我们提出的模
2022-07-12 23:24:15 871
原创 可分离卷积(Separable convolution)详解
可分离卷积包括空间可分离卷积(Spatially Separable Convolutions)和深度可分离卷积(depthwise separable convolution)。
2022-07-12 19:23:36 14331
原创 详解 pyinstaller 打包多个py文件
打包多个py文件Failed to execute script 'simple' due to unhandled exception!NameError: name 'exit' is not defined
2022-06-10 18:20:00 13312 2
原创 VTK-等值面提取
等值面等值面(线)提取是一种常用的可视化技术,常应用于医学、地质、气象等领域。例如,在医学图像处理中,由于CT、MRI等图像分辨率越来越高,虽然体绘制技术可以清晰地对数据内部结构进行可视化,但是其计算量和效率却制约了其使用。此时可通过等值面提取技术,仅提取感兴趣的一个或者几个组织轮廓,并生成网格模型以供后续的处理和研究。根据数据类型的不同,VTK中提供了多个等值面提取类,其类图如图所示VTK中的等值面提取算法多基于MarchingCube算法来实现。MarchingCube是经典的移动立方体等值面提
2022-01-03 18:24:28 1515
原创 判断一个点是否在多边形内部-回转数法
介绍射线法是一种很简单直观的判断平面内点是否在多边形内的方法。除了射线法还有很多其他的方法,今天就再介绍一种通过回转数来判断的方法。平面中的闭合曲线关于一个点的回转数(又叫卷绕数),代表了曲线绕过该点的总次数。下面这张图动态演示了回转数的概念:图中红色曲线关于点(人所在位置)的回转数为 2。回转数是拓扑学中的一个基本概念,具有很重要的性质和用途。本文并不打算在这一点上展开论述,这需要具备相当的数学知识,否则会非常乏味和难以理解。我们暂时只需要记住回转数的一个特性就行了:当回转数为 0 时
2021-12-25 17:21:17 1517
原创 判断点是否在多边形中的方法
判断一个点是否在多边形内部的方法面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部首先讲解下射线法的原理情况一,显示了具有 14 条边的严重凹陷多边形的典型情况上图 显示了具有 14 条边的严重凹陷多边形的典型情况红点是需要
2021-12-25 16:14:50 7084 4
原创 深入理解VTK中DisplayToWorld的实现
从Display坐标系点转世界坐标系点int eventDisplayPosition[3]{0};this->Interactor->GetEventPosition(eventDisplayPosition);this->Renderer->SetDisplayPoint((double)eventDisplayPosition[0], (double)eventDisplayPosition[1], (double)eventDisplayPosition[2]);th
2021-12-23 01:32:23 1649
原创 PyTorch-softmax,argmax,soft-argmax
softmaxSoftmax函数是一个非线性转换函数,通常用在网络输出的最后一层,输出的是概率分布(比如在多分类问题中,Softmax输出的是每个类别对应的概率),计算方式如下:得到的是第i个位置对应的概率,每个位置的概率之和为1(可以看出Softmax仅进行计算,没有需要学习的参数)。Pytorch softmax APItorch.nn.functional.softmax(input, dim=None, _stacklevel=3, dtype=None)input是我们输入的数据,
2021-10-13 18:24:42 3683
原创 动手实现基于pytorch框架的UNet模型
前言最近在学习CNN 图像分割相关内容,接触到了UNet 网络,UNet是一个很经典的网络,因其结构像字母U得名,对于一般的图像分割有显著的效果。UNet的网络结构是一个U形结构,左半边是Encoder,右半边是Decoder。Encode部分,下采样不断的增大channel,宽高减半,并提取图像的特征,但是丢弃了图像的位置信息。Decoder 上采样,upconvolution,融合下采样的图像特征并恢复图像的位置信息UNet 结构图关于跟详细的实现内容可以阅读 UNet论文1.首先,图中
2021-09-20 01:41:52 2153
转载 入门Dropout层
Dropout层在神经网络层当中是用来干嘛的呢?它是一种可以用于减少神经网络过拟合的结构,那么它具体是怎么实现的呢?假设下图是我们用来训练的原始神经网络:一共有四个输入x_i,一个输出y。Dropout则是在每一个batch的训练当中随机减掉一些神经元,而作为编程者,我们可以设定每一层dropout(将神经元去除的的多少)的概率,在设定之后,就可以得到第一个batch进行训练的结果:从上图我们可以看到一些神经元之间断开了连接,因此它们被dropout了!dropout顾名..
2021-09-15 16:04:47 972 1
原创 pytorch 中的Tensor.detach介绍
detch的作用Tensor.detach() 的作用是阻断反向梯度传播,当我们再训练网络的时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整;或者值训练部分分支网络,并不让其梯度对主网络的梯度造成影响,这时候我们就需要使用detach()函数来切断一些分支的反向传播,例如在生成对抗网络的训练当中,在训练判别器的时候不需要生成器进行反向梯度传播,这时候就会使用到 detach()。detch 文档说明返回一个新的 Tensor,与当前计算图形分离。结果永远不需要梯度,requir
2021-09-14 23:21:20 6598
原创 如何启动FastAPI应用作为一个windwos服务
如何使用FastAPI请查看fastAPI官网例子,说的很详细了,不在赘述如何作为服务启动例如你有一个main.py如下:from fastapi import FastAPIimport uvicornapp = FastAPI()@app.get("/")def read_root(): return {"Hello": "World"}if __name__ == "__main__": uvicorn.run("main:app", host="127.0.
2021-09-10 00:55:37 3495
原创 python 打印当前时间
import time# 获取当前时间current_time = int(time.time())print(current_time) # 1631186249# 转换为localtimelocaltime = time.localtime(current_time)# 利用strftime()函数重新格式化时间dt = time.strftime('%Y:%m:%d %H:%M:%S', localtime)print(dt) # 返回当前时间:2021:09:09 19:17:29.
2021-09-10 00:10:15 12200
原创 python 打印程序cpu 耗时
废话不多说直接上代码import timestat_time = time.process_time()i = 0while(i < 1000000): i = i+1 end_time = time.process_time()print(f"total time:{(end_time-stat_time)}")
2021-09-09 19:14:43 499
原创 python 编译pyc文件后,运行出现ModuleNotFoundError问题
报错信息解决方法首先将所有__pycache__目录里的pyc文件全部粘贴到当前目录中将所有pyc文件后缀改为与目录中py文件相同名字 例如 infer.cpython-39.pyc修该为infer.pyc将所有py文件删除
2021-09-09 15:48:41 1415
原创 透彻理解BN(Batch Normalization)层
什么是BNBatch Normalization是2015年论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》中提出的数据归一化方法,往往用在深度神经网络中激活层之前。其作用可以加快模型训练时的收敛速度,使得模型训练过程更加稳定,避免梯度爆炸或者梯度消失。并且起到一定的正则化作用,几乎代替了Dropout批量归一化:通过减少内部协变量偏移来加速深度网络训练由于每
2021-09-07 01:13:54 7603
原创 torch.nn.MaxPool2d参数详解
在神经网络中 池化层是比较重要的,是提取重要信息的操作,可以去掉不重要的信息,减少计算开销。下面我们来介绍MaxPool2d的使用方法。API官网文档MaxPool2d 参数介绍kernel_size :表示做最大池化的窗口大小,可以是单个值,也可以是tuple元组stride :步长,可以是单个值,也可以是tuple元组padding :填充,可以是单个值,也可以是tuple元组dilation :控制窗口中元素步幅return_indices :布尔类型,返回最大值位置索引cei
2021-09-05 10:57:17 15928 3
原创 将python程序打包成exe
安装pyinstallerpip install pyinstaller打包exe若需将xxx.py文件打包,只需在终端执行:pyinstaller xxx.py注:终端需切换至xxx.py文件所在目录下。常用可选项及说明:-F:打包后只生成单个exe格式文件;-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;-c:默认选项,使用控制台(就是类似cmd的黑框);-w:不使用控制台;-p:添加搜索路径,让其找到对应的库;-i:改变生成程序的icon图标。参考文
2021-09-02 01:08:09 193
原创 python发布模块安装包
更新pippython3 -m pip install --upgrade pip项目结构 __init__.py需要将目录作为包装导入,并且应是空的。sample.py是包中包含包逻辑(功能、类、常数等)的模块的示例。打开该文件并输入以下内容def main(): return 如果您不熟悉 Python 的模块和导入包,请花几分钟时间阅读Python 文档的包和模块。创建此结构后,您将希望在目录内运行此教程中的所有命令。packaging_tutorial创建测试目录
2021-09-02 00:56:16 879
原创 python编译pyc文件
什么是pyc文件pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。什么是pyo文件pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件什
2021-09-01 23:05:48 3857
原创 MONAI-如何加载图像
使用默认图像阅读器加载 Nifti 图像MONAI 根据支持的后缀并按以下顺序自动选择阅读器:调用此加载程序时,用户在运行时指定的读取器。注册读者从最新到列表中的第一个。默认阅读器:(nii, nii.gz -> NibabelReader), (png, jpg, bmp -> PILReader), (npz, npy -> NumpyReader), (others -> ITKReader)。API说明如下图:#导入用到得moduleimport osi
2021-09-01 00:46:14 1975
原创 Pytorch公众号文章连接
初始化一个Tensor直接从data创建,数据类型会被自动推导 data =[[1,2],[3,4]]x_data=torch.tensor(data)从numpy array 中创建tensor np_array = np.array(data)x_np=torch.tensor(np_array)从其他tensor创建,新的tensor会保留数据类型和形状,除非明确覆盖 x_one = torch.ones_like(x_data)#print(..
2021-08-29 16:15:34 123
S3C2440源程序
2013-07-19
VC++6.0助手[Visual Assist X v10.0.1233.0 破解版(Cracked)]
2013-07-19
DWG-Smart-Card-USB-ICC-ICCD-rev10.pdf
2016-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人