- 博客(22)
- 收藏
- 关注
原创 nn.BCELoss, nn.CrossEntropyLoss, nn.BCEWithLogitsLoss
即 负的可能性的对数 的期望 代表了该事件理论上的平均最小编码长度。更灵活,可以用来计算指标,不进行梯度计算,反向传播等。交叉熵使实际编码长度和理论最小编码长度有了对比意义。二分类交叉熵是交叉熵的一个特例,当只有两个类别时,有。好于使用Sigmoid层和BCELoss的组合使用。熵是服从某一概率分布事件的理论最小平均编码长度。因此可以将交叉熵用于分类损失函数。其中P是真实概率分布,Q是预估概率分布。,其对输入进行Sigmod层,该函数的。
2023-11-06 14:19:31 204
原创 构建pytorch Dataset from numpy
定义的数据需要通过for循环访问,如下代码,代码中inputs和labels的shape = (B, C, W, H), B是batch_size,在DataLoader中定义,本代码中对应为16。然后定义一个class, 该class继承torch.utils.data.Dataset,在该class中需编写2个必须的函数。函数用于接收该class的输入,在实例化该class时会自动调用该函数。另外在该class中也可以有一些数据处理的函数,在函数。后便可输入数据调用,代码如下。函数返回数据的总个数。
2023-11-06 10:12:46 124
原创 Unet网络下采样出现奇数分辨率导致torch.cat报错
检查发现尺寸378下采样过程:378 --> 189 --> 95 --> 48–> 24 --> 12,其上采样过程为12 --> 24 --> 48 --> 96 --> 192,因此在跳跃连接时出错。解决方案时将378尺寸pading到最接近的偶数尺寸,即12 --> 24 --> 48 --> 96 --> 192 --> 384, 输入图像从shape = (378, 512) --> (384, 512).
2023-11-04 12:28:47 370 2
原创 Canceled future for execute_request message before replies were done
用jupyter在pytorch上跑3D Unet时遇到kernel crashed的问题。
2023-10-19 15:43:06 597
原创 Monai中intensity相关的Transform
医学图像中的intensity变化较大,且有具体含义,查看不同的部位需要使用不同的窗宽和窗位,因此我们在对数据预处理时也需要采用合适的窗宽和窗位。如对脾脏的分割中,只需要脾脏的CT值范围(假设在-300-- +300之间),而不需要骨头等高强度的信号(大于2000)。Monai中为了更合理的intensity的范围设置了几种Transform。
2023-10-19 15:09:57 395
原创 Monai使用
Step 1: 创建新环境,Step 2: 安装torch gpu,根据电脑的cuda版本在获取相应的命令,若不使用GPU版本的pytorch则直接到Step 3Step 3: 安装Monai,Setp 4: 安装itk, nibabel包,Step 5: 安装matplotlib, jupyter等其它依赖包,
2023-10-14 16:19:41 2071 3
原创 Chrome浏览器在新窗口打开链接
打开第1步的链接如下图,选择该页面右下角的Settings。输入google search,如下图,点击第一个链接。选择第一个Search settings。
2023-09-02 15:50:46 796
原创 No DLLS were Found in the Waterfall Procedure的解决
error at loading ippip libarary在按照该博客的方法添加ipp的环境变量后仍未解决该错误。然后发现该项目中包含了需要调用的dll文件,同时系统的环境变量中也有一个路径能够访问需要调用的dll文件(非上述的项目路径,即存在两份dll文件),删除该项目中的dll文件,成功解决。...
2022-05-09 22:58:23 897
原创 Python networkx包的学习
在用到一个医学图像增强工具的时候发现他用了这个包,所以简单的学习了一些关于这个包的基础知识,这个包是开发的关于图论和复杂网络建模工具,我这里只学习了一些简单的关于图的创建和遍历的一些简单操作,具体如下程序所示...
2020-11-22 20:54:07 175
原创 tensorflow-gpu安装一直出现超时的问题
我想安装的是tensorflow-gpu==2.2.0版本,但安装过程中一直出现Read Timeout,想直接看正确版本的请直接翻到最后加粗的如下。一开始是翻墙安装的,但是速度也十分的感人,出现了Read Time out的问题,于是换成了国内的镜像pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade tensorflow-gpu==2.2.0仍然是超时连接不上,然后换了几个镜像源尝试,pip install -i
2020-11-19 21:04:25 999 7
原创 快速排序的非递归实现
快速排序的基本思想是:找一个基准值(如可以选最左边的值或者随机选择一个值或者选择最右边的值作为基准值),然后通过一趟遍历,将数组分为两部分,其中一部分的数据都比基准值小,另一部分的数据都比基准值大,然后再递归的解决子问题,即对分割好的两部分再进行排序,直到子问题中只剩下一个元素时,一个元素肯定是有序的。所以该算法可以通过上述思路进行递归排序,今天面试的时候被问到非递归怎么实现,ummmmm问懵了,于是就有了今天的非递归实现,主要是通过数据结构——栈实现,具体实现代码如下'''快排的非递归实现,需要用到
2020-11-16 21:56:30 352
原创 Python插入排序
'''插入排序,时间复杂度O(n^2),空间复杂度O(1),稳定的排序算法'''def insert_sort(array): n = len(array) for i in range(1, n): cur = array[i] j = i - 1 while j >= 0 and array[j] > cur: array[j+1] = array[j] j -= 1
2020-11-09 21:00:09 66
原创 快速排序算法
'''快速排序算法,时间复杂度O(nlogn),空间复杂度O(logn)(递归中需要存储数据),不稳定的排序算法'''def quickSort(array): n = len(array) def recur(array, l, r): if l >= r: return pivot = array[l] i = l j = r while i < j:
2020-11-09 20:57:21 72
原创 设计模式之单例模式
'''单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点角色:单例优点:1. 对唯一实例的受控访问2. 单例相当于一个全局变量,但防止了命名空间被污染应用场景:日志文件,线程池,数据库连接池,操作系统的文件系统,网站计数器'''class Singleton: def __new__(cls, *args, **kwargs): if not hasattr(cls, "_instance"): cls._instance = s
2020-10-13 09:38:16 82
原创 KMP算法Python代码实现
'''KMP算法,是一种字符串查找算法,可在一个主文本字符串S中查找一个词(模式串)P的出现位置。该算法利用之前已经部分匹配这个有效信息,保持i不回溯,通过修改j的位置,让模式串尽量地移动到有效的位置。能够做到i不回溯的原因是事先计算好模式串P的next函数,所以该算法的难点和重点都是next函数的计算。'''def getNext(P): n = len(P) if n == 1: return [-1] nex = [0] * n nex[0]
2020-09-11 16:49:36 410 3
原创 Python C/C++混合编程之将Python数组列表变量传递给C/C++
python中的数组是很常见的,调用完python后返回一个列表,将列表的值传入C/C++中的变量代码如下int DRR() { int res; PyObject *pModule, *pFunc; PyObject *pArgs, *pValue; /*导入DRR模块,注意要将DRR.py放入工程文件夹中的x64文件夹下的Release文件夹下*/ pModule = PyImport_ImportModule("DRR"); /*在great.py中有一个GenerateDRR函数*
2020-09-01 20:28:55 2859
原创 Python C/C++混合编程之向Python中传入文件地址参数
上一篇博客写了怎么建立Python和C/C++之间的通信,但是上次测试传入的是一个整数数据,而在实际工程中用到的是传入一个文件的地址。这里需要用到PyUnicode_DecodeFSDefaultAndSize,具体的测试代码如下int great_from_python(const char *filename) { int res; PyObject *pModule, *pFunc; PyObject *pArgs, *pValue; /*导入great模块,注意要将great.py放入工
2020-09-01 19:00:29 628
原创 C/C++调用Python3.6 VS2017
最近项目中需要将Python文件转化成C/C++可调用的文件,这个问题本来有两条思路可选:1.用C/C++将Python文件重新写一遍2.将Python文件封装成dll等可供C/C++调用的文件因为.py代码较长,且里面调用了许多Python中的库函数,所以实现思路1实现起来相对困难,所以决定选择思路2.对于思路2这里也有两种方案可供选择:1.直接写C调用2.借助Cython库完成对Python文件的封装因为之前在用Cython时用到的坑实在太多,所以这次打算尝试一下使用方案1解决,即直接在C
2020-09-01 16:44:06 910
原创 什么是排序算法的稳定性
假如在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中r[i] == r[j],且r[i]在r[j]前面,而在排序后的序列中r[i]仍在r[j]之前,则称这种排序算法是稳定的,否则称为不稳定的...
2020-07-25 11:40:12 2201
原创 中值滤波与高斯滤波的原理和应用场合
中值滤波属于非线性滤波的一种,高斯滤波属于线性滤波的一种。在Opencv中有高斯滤波的函数,但是中值滤波需要通过排序实现。一、中值滤波原理:中值滤波使用一个围绕当前像素的矩形,查找区域内像素的中值,并用该中值替换矩形区域内的其它像素点。应用场合:中值滤波对于散射噪声的处理比较理想,因为散射噪声通常与周围像素值的差异非常大。但中值滤波的性能一般,因为算法执行过程中,要使用中值对其它像素进行替换。而且对于高斯噪声的处理不理想,不过可以通过追加针对区域像素最大值与最小值的忽略,来计算中值。二、高斯滤波原
2020-07-23 10:20:43 5573 4
原创 给定均值和方差,不使用库函数生成1000个符合正太分布的随机数
产生任意分布随机数的一般定理产生连续型随机变量样本值的方法有如下定理:定理:设随机变量U~U(0,1),F(x)是某一随机变量的分布函数,且F(x)为严格单调增加且连续的函数,则随机变量F-1(U)具有分布函数F(x),其中F-1(x)是F(x)的反函数。利用该定理可以生成不同分布函数的随机变量。如随机变量X具有指数分布,其分布函数为试产生随机变量X。X可以通过以下过程得到:设U~U(0,1),令解得因为当U~U(0,1),也有1 - U~U(0,1),从而就是所要产生的指数分布的随
2020-07-22 11:06:53 2537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人