- 博客(139)
- 收藏
- 关注
原创 医学图像分割之UNet++
最先进的图像分割模型是像FCN、U-Net一样,是编码层-解码层结构的变种。这种encoder-decoder结构有一个相同点:都有跳跃连接,将来自解码层的深的、语义的、粗粒度的特征图与来自编码层的浅的、低级的、细粒度的特征图进行组合。U-Net的跳跃连接,是直接在同层之间,将来自encoder的特征图与decoder的特征图进行了拼接,作者发现encoder的特征图与decoder的特征图内容差距太大,也就是作者提出的gap,将信息量差距大的特征图进行组合,组合后的特征图也会缺少一些细粒度信息。
2023-05-05 22:42:11
1750
2
原创 医学图像分割之U-Net
在过去两年中,在很多视觉识别任务重,深度卷积网络的表现优于当时最先进的方法。但这些深度卷积网络的发展受限于网络模型的大小以及训练数据集的规模。虽然这个限制有过突破,也是在更深的网络、更大的数据集中产生的更好的性能。卷积网络的典型使用是在图像分类任务上,即输入一个图像,输入该图像对应的一个标签。在很多视觉任务中,尤其是医学图像任务中,希望得到每个像素对应的类别以及定位,而不是一整个图像的类别。在医学图像分割中,还存在着训练集规模不大的问题。
2023-05-04 20:24:43
1265
原创 医学图像分割之Attention U-Net
为了捕获到足够大的、可接受的范围和语义上下文信息,在标准的CNN结构中,特征图被逐步下采样,以获得粗粒度的特征图,扩大感受野范围。粗粒度特征图能反应空间信息。虽然粗粒度特征图能在全局尺度上进行模型定位,反应组织间的关系,但是当目标是不同形状的小目标时,减少错正率保持着困难。
2023-05-01 21:26:58
1761
原创 python之多线程
一个计算机系统中可以同时有多个不相交的事件发生,比如微信和QQ,此类事件在计算机中被称为进程,即一台计算机系统中可以同时存在多个进程。微信中可以同时实现语音通话和发消息聊天,该类事件被称为一个进程中的多个线程。进程之间相互独立,但线程之间可以共同享用资源。我们在商超买东西时,当只有一个收银台时,会导致排很长的队。如果有多个收银台同时工作的话,会大大提高效率。这是生活中的多线程,即多个线程同时工作。我们接下来用代码案例讲解多线程与单线程的区别。单线程即在程序运行过程中,按照一定的先后顺序运行。多线
2020-05-29 15:17:23
247
原创 python之异常的检测和处理
当代码出现问题时,系统会异常错误。我们现在想实现的是在代码出现问题的时候获取到异常信息,并做处理。try: 监控异常except exception: 处理异常finally: 正常运行理论不大好懂,我们直接上案例。在计算除法时,如果除数是0的话,会报错ZeroDivisionError。我们现在可以获取到这个ZeroDivisionError异常,并作出处理。try: 1/0except ZeroDivisionError: pri
2020-05-27 10:53:16
749
原创 python之文件的常用操作
readline()可以读取一行内容readlines()可以读取多行内容,可以与for循环联用。tell()输出目前文件指针的位置read()读取文件所有内容read(x)读取x个字符seek(a)偏移的位置,从开头开始计数seek(a, b) b=0:从开头开始算偏移; b=1:从当前位置开始计偏移; b=2:从末尾开始计偏移。...
2020-05-25 11:19:36
186
原创 python之文件read,write
计算机操作系统中,我们在对文件进行加工之前,需要先将文件打开,再进行读r、写w操作,操作完成后,还需要对文件进行关闭。#1f1 = open('text.txt', 'w') #打开文件text.txtf1.write('hello, file') #向文件中写字符串f1.write('like you') f1.close() #关闭文件#2f2 = open('text.txt', 'w') #覆盖了文件中原来的内容f2.write('yjy')f2.c
2020-05-21 17:29:23
324
原创 python之__call__
往常中,我们调用函数时 “函数名(参数)” ;我们需要调用类的方法时,是通过类的实例调用的 “类名.方法名(canshu )”。现在我们想实现 在调用类方法时,可以 “实例名(参数)”,那么能实现吗?__call__方法可以帮我们实现这一效果。class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __call__(
2020-05-21 15:28:21
190
原创 python之__slots__
因为python是动态语言,在使用时可以动态的添加属性。现在想要限制类的属性,__slots__可以实现这个效果。先看代码:class Person(object): __slots__ = ('name', 'gender') def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): __sl
2020-05-21 14:43:11
196
原创 python之完善decorator
装饰器可以给函数动态添加功能,但是装饰器后,再输出原函数的函数名的话,会发现输出的不是原函数的函数名了。def new_fn(text): def decorator_new_fn(f): def fn(x): print ('[%s] call ' + f.__name__ +'()') % (text) return f(x) return fn return decorator_new_fn@new
2020-05-19 15:11:57
454
原创 python之编写带参数decorator
在学习带参数的decorator之前,我们先回顾下无参数的decorator。以@log装饰器为例讲解:无参数decoratordef new_fn(f): def fn(x): print 'call '+f.__name__+'()' return f(x) return fn@new_fndef f(x): return x*xprint f(2)==> call f()==> 4像这种装饰器的参数除了原函数以
2020-05-19 10:35:49
359
原创 python之*args,**kw
python中函数的参数分为普通参数、默认参数、非关键字参数、关键字参数,下面我们就具体讨论下各个参数类型。比如:def func(a, b, c = 0, *args, **kw): print 'a = ' + str(a) #str()函数是将a转换成str类型,因为 + 左右类型都应为str类型 print 'b = ' + str(b) print 'c = ' + str(c) print 'args: ' + str(args) print
2020-05-18 14:55:04
357
原创 python之decorator装饰器
我们在运行一个函数时,想要动态地给这个函数添加一些功能,又不想在原函数上进行更改,那怎么做呢?比如我们想在调用函数时输出log语句,我们首先想到的是在函数内添加print语句,这个pass掉,不符合前提条件。我们之前还学过高阶函数,因为高阶函数可以传入一个函数,也可以返回一个函数。我们可以利用高阶函数,在高阶函数里对原函数进行加工,然后返回加工后的原函数,实现对该函数添加输出log语句的功能。理论话语不好理解,下面我们看实例操作。def f1(x): #原函数 return x*xd
2020-05-15 17:31:56
193
原创 python之闭包
在函数内部和函数外部定义的函数是一样的,只是函数内部定义的函数无法被外部函数调用。def g(): def f(): return 1+2 return 0像上面这种 f() 函数放在了 g() 函数内部,则只能在g() 函数里面被使用,在 g() 函数外部是无效的。def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum想上面代码案例,lazy..
2020-05-15 15:30:22
131
原创 python之匿名函数
python中有高阶函数,即以函数名作为参数,传入到函数里使用。匿名函数使用起来比较方便,无需显式定义参数函数。还是以map函数为例讲解。print map(lambda x: x*x, [1, 2, 3])==> [1, 4, 9]匿名函数的关键字是lambda,lambda紧接着是参数,参数与函数体以 ‘:’区分开。需要强调的是,匿名函数只能有一个表达式,且不需要return,自动返回表达式的结果。总结下:匿名函数说白了就是在函数的参数地方,定义一个没有名字的函数作为其参数。若要.
2020-05-12 10:57:52
330
原创 python之map()函数
python中有map函数,map函数是一个高阶函数,接收一个函数作为参数,还有一个list。其作用是高阶函数对list中的每个元素进行加工,然后生成一个新的list,并将其返回。def f(x): return x*xprint map(f, [1, 2, 3])==> [1, 4, 9]list不要求一定是数字类型,可以是任意类型。例:假设用户输入的英文名不规范,要求输入的英文名规则是首字母大写,其他字母小写。请用map表示出结果。names = ['ada', '
2020-05-12 10:43:19
311
原创 python之类型转换
普通的数据可以强制转换数据类型,比如>>>a = 3.2>>>int(a)3>>>b = 8>>>float(b)8.0那么分数能进行数据类型转换吗?可以的。因为我们学过python中的特殊方法__xx__, 在使用python中没有的功能时,系统会自动调用该功能对应的特殊方法,达到同样的效果。我们以有理数中分数的四则运算为例子,进行对应的int,float的数据类型转换。def gcd(a, b): #求
2020-05-09 11:29:50
351
原创 python之有理数运算Rational类
python中可以做的数学运算,仅局限在了基本数据类型int、float。因为我们前面学过了特殊方法,所以我们现在也可以进行有理数运算、矩阵运算,今天我们就先讲解有理数运算,矩阵运算与有理数运算方法基本一样,都要用到特殊方法进行定义运算过程。有理数分为整数和分数,整数即int,不需要讲解,今天我们就说下分数的数学运算。分数的数学运算要注意最后运算结果化为最简形,化为最简形就需要事先计算出分子分母的最大公约数。表示有理数类我们用Rational进行表示。具体的事先过程我们以一例子进行讲解。在Ratio
2020-05-09 11:17:51
5551
4
原创 python之__len__()
在List一节中,我们要求List列表中有多少个元素时,直接用len(L)即可获得列表元素个数。那现在我想求类中实例的个数,用len()函数没有效果,那怎么办呢?这就需要我们今天即将介绍的__len__()特殊方法来解决了。下面以一个例子来介绍该特殊方法的使用:斐波那契数列是由0,1,1, 2, 3, 5, 8...构成请编写一个Fib类,Fib(10)表示数列的前10个元素,prin...
2020-05-08 15:35:49
4829
原创 python之__cmp__()
在python中,对str,int等数据类型进行排序时,使用python内置的sorted()函数里默认的cmp函数对其排序。那如果要对实例对象进行排序,怎么操作呢?此时就要用到特殊方法__cmp__(),在类中对__cmp__()根据要求定义,即可实现对实例对象进行排序。例子:按照名字,由小到大排序;名字相同时,按照成绩由高到低排序。以上述例子,具体说下函数__cmp__(self,...
2020-05-07 17:47:56
1894
原创 python之__str__()与__repr__()的区别
在专门学习python的特殊方法时,廖雪峰老师是将__str__()与__repr__()两个函数一起讲的,而且我觉得他讲的__repr__()是一带而过,当时我是没弄清楚两个函数是什么区别与联系的,经过查阅资料,现在整理下来,供大家学习参考。__str__()与__repr__()函数都是将实例变成字符串的,区别是__str__()是面向用户的,而__repr__()是面向开发人员的。类中只...
2020-05-07 16:28:47
387
原创 python之获取对象信息
我们之前有学过isinstance(),该函数是判断某实例是否是某类型的实例对象。现在我们想获取一个实例对象的更多信息,怎么获取呢?接下来我们将学习dir(), type(), getattr(), setattr(),来获取实例的更多信息。目录type()获取变量的类型dir()获取实例变量的所有属性getattr()获取已知实例的已知属性的属性值setattr()给对象添加...
2020-05-07 11:28:27
442
原创 python之多态
多态的作用:即不同内容的函数拥有同一个函数名,这样在类外即可通过同一个函数名调用不同内容的函数。多态的特点:对象所属的类之间,继承关系可有可无(这点是与C++里的多态不同处,C++中使用多态的类之间必须是继承关系)。由以上例子可以看出:在继承类中,可以使用多态;非继承类中也可以使用多态。同名函数中传入类实例对象即可。欢迎大家和我一起交流学习,我的公众号是:...
2020-05-06 14:43:28
2825
原创 python之判断类型
python中,isinstance()可以判断数据类型,比如int, str,或是我们自己定义的类,都是可以用isinstance()来判断的。以上例子中,Student类与Teacher类都继承自Person类,t为Teacher类的一个实例。由上例可以看出,子类的实例是子类的类型,同时也是其父类的类型,但父类的类型不是子类的类型。注意isinstance()的使用方式。...
2020-05-06 10:36:47
3501
原创 python之继承类
一个班级里,分学生和班长,班长也是学生,只是比一般学生多了班长的职责。现在我们有学生类,定义班长类时,我们只需要在学生属性的基础上添加上职位属性。像此种情况,就是我们在python中学到的继承思想,即已有学生类,班长类有学生类的全部属性,且还需要在学生类的基础上添加上自己独有的属性。如以上例子,Monitor类继承自Student类,类名后面的括号中填写继承的类名,没有继承类名的需要填写o...
2020-05-06 10:14:52
537
原创 python之定义类方法
python中方法也分实例方法与类方法,原来我们接触到的类中的方法都是实例方法,今天我们将介绍下类方法。类方法需要装饰器@classmethod来装饰,其参数cls指的是类名,类方法中cls.__count即Person.__count;实例方法的参数self是指向调用它的实例对象。类方法与实例方法的区别是:类方法中操作的是类属性;实例方法中即可操作实例属性,又可操作类属性,不过类属性...
2020-05-01 21:06:48
337
原创 python之定义实例方法、访问私有属性
讲解今天的内容前,我们先来回顾下之前章节学过的访问限制内容。我们知道了:形式为 “__x”的实例属性为私有属性,不能被外界访问; 形式为 “__x__”的实例属性可以被外界访问,但被称为特殊属性,不建议将普通属性如此定义; 形式为 “_x” 的实例属性可以被外部访问,但是按照习惯,他们不应该被外部访问。 形式为 “__x” 的类属性同样不能被外部访问。虽然以上形式为 “__x” 的实例...
2020-04-29 10:36:53
1597
原创 python之类属性与实例属性冲突
上一节中我们讲到,当通过实例改变类属性的值时,实际达到的效果是给实例绑定了一个属性,且该属性与类属性同名。>>>class Person(object):>>> count = 0>>> def __init__(self, name):>>> self.name = name>&...
2020-04-28 14:48:02
420
原创 python之创建类属性
如果您接触过c++的话,那您在学习这节时会容易些,我尽量解释详细点。我们前几节已经学习了python中如何定义类,且学习了如何在类中定义函数,那么在python类中能创建属性吗,即我们常说的变量?答案是可以的。因为python是动态语言,在创建了python实例时,可以随时定义实例属性,那实例属性与类属性有什么区别呢?在学习类属性之前,我们先来搞清楚实例属性与类属性的区别。实例的属性只能被...
2020-04-28 13:52:11
1012
原创 python之访问限制
一般情况下我们会给一个实例绑定很多属性,但是有些属性比较私人化,不想被外部调用,那怎么才能实现不被外部调用呢?python中对属性名称做改变 - 属性名称以双下划线'__' 开头,将实现这个功能。由上面可知,当属性名以双下划线 ‘__' 开头时,即定义类型为‘__x’ , 属性名不能被外部访问;但是如果其属性名后面又加上了双下划线 '__', 即定义类型为 '__x__' , 其右能够被...
2020-04-24 16:38:13
607
原创 python之初始化实例属性
对于实例来讲,就同一种类型的实例,会拥有相同的属性名称,比如人Person,需要有姓名name,性别gender,年龄age。因为python是动态语言,如果在定义实例时随时给属性赋值,实例多了会比较麻烦,那能不能事先把实例中的相同属性的名称定义好,在创建实例时直接赋值呢?可以。这就用到了python中的__init__()函数,当使用类创建实例时,该函数会被自动调用。class Per...
2020-04-23 10:36:03
677
原创 python之定义类
python中的类与C++中的类很相似,不同的是一些小细节的表达方式。python中有int类型、float类型等,我们定义的类就是此类别的类型,只不过是认为定义的。定义类需要关键字class,之后是一个类名,我们编程习惯将类名首字母大写。类名后面有个括号,括号里是继承的类名,继承我们将在后面仔细讲解,大家理解此处即可,目前我们的继承类大多是object类。class Person(ob...
2020-04-22 17:13:47
459
原创 python之删除list元素
承接原来的例子。L = ['xiaoming', 'zhangyang', 'honghong', 'Tidy']Tidy刚转来由于不适应新班级的氛围,现又要转走了(熊孩子><!)。那么现在问题来了,怎么将Tidy名字从list中去除呢?方法如下: 如果要去除的元素是在list列表的最后,则可以通过pop()方法去除。 >>>L.pop() 'T...
2020-04-21 11:35:39
239
原创 python之添加新元素
承接原来的例子L = ['xiaoming', 'zhangyang', 'honghong']现在班里新来了一名同学Tidy,由于还没有考试,老师要将他的名字放在所有同学的最后。那么问题来了:如何将新同学的名字添加到列表的最后呢? python有个自带的append()方法,可以在list列表的最后添加元素。 >>>L.append('Tidy') >...
2020-04-21 11:34:19
1196
原创 python之倒序访问list
将学生根据成绩由高到低排名,并将学生名字保存到一个list列表里。L = ['xiaoming', 'zhangyang', 'honghong']现在我们要获取最后一名学生的名字,我们需要获取到列表的长度len,然后根据索引访问list,L[len-1]。有没有简便点的方法呢,不用知道列表长度,直接访问最后一名?可以。这就是今天我们讲解的倒序访问list。我们规定最后一个list...
2020-04-21 11:32:48
505
原创 python之按照索引访问list
L =['a', 'b', 3]如同数据结构中的线性表,python中list元素也可以按照索引被访问。如同线性表,list的首元素索引号也为0。>>>printL[0]a>>>print L[3]Traceback (most recent call last): File "<stdin>", line 1, in ...
2020-04-21 11:31:41
734
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人