prepare.py
Q1(601):
f= open(finished_flag,"w+")
Q2(Ln505):
if isflip:
Mask = Mask[:,::-1,::-1]
Q3(507):
newshape = np.round(np.array(Mask.shape)*spacing/resolution).astype('int')
m1 = Mask==3
m2 = Mask==4
Mask = m1+m2
Q4:
xx,yy,zz= np.where(Mask)
Q5:
def process_mask(mask):
convex_mask = np.copy(mask)
for i_layer in range(convex_mask.shape[0]):
mask1 = np.ascontiguousarray(mask[i_layer])
if np.sum(mask1)>0:
mask2 = convex_hull_image(mask1)
if np.sum(mask2)>1.5*np.sum(mask1):
mask2 = mask1
else:
mask2 = mask1
Q6:
sliceim[bones] = pad_value
Python多进程库multiprocessing中进程池Pool类的使用
Pool类可以提供指定数量的进程供用户调用,当有新的请求提交到Pool中时,如果池还没有满,就会创建一个新的进程来执行请求。如果池满,请求就会告知先等待,直到池中有进程结束,才会创建新的进程来执行这些请求。
multiprocessing模块提供process类实现新建进程。
如果要同时创建多个子进程可以使用multiprocessing.Pool类。该类可以创建一个进程池,然后在多个核上执行这些进程。
map()
函数原型:
map(func, iterable[, chunksize=None])
Pool类中的map方法,与内置的map函数用法行为基本一致,它会使进程阻塞直到返回结果。
注意,虽然第二个参数是一个迭代器,但在实际使用中,必须在整个队列都就绪后,程序才会运行子进程。
close()
关闭进程池(pool),使其不在接受新的任务。
join()
主进程阻塞等待子进程的退出,join方法必须在close或terminate之后使用。
并发执行的时间明显比顺序执行要快很多,但是进程是要耗资源的,所以平时工作中,进程数也不能开太大。
Python xrange() 函数
xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。
偏函数(Partial)
partial函数的作用就是:将所作用的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数的后续参数,原函数有关键字参数的一定要带上关键字,没有的话,按原有参数顺序进行补充。
Faster-R-CNN(Python).3: numpy.where()函数
numpy.where()函数是三元表达式x if condition else y的矢量化版本。
返回一个数组,或者由数组组成的元组。
根据定义条件返回元素,这些元素或者从x中获得,或者从y中获得。
如果只给出条件,没有给出[,x, y],返回条件中非零(True)元素的坐标。
python numpy.expand_dims的用法
Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
numpy.ascontiguousarray
numpy.ascontiguousarray(a, dtype=None)
在内存中返回一个连续的数组
Parameters:
a : array_like
Input array.
dtype : str or dtype object, optional
Data-type of returned array.
Returns:
out : ndarray
Contiguous array of same shape and content as a, with type dtype if specified.
Examples:
>>>x = np.arange(6).reshape(2,3)
>>>np.ascontiguousarray(x, dtype=np.float32)
array([[ 0., 1., 2.],
[ 3., 4., 5.]], dtype=float32)
>>>x.flags['C_CONTIGUOUS']
True
mask1 = np.ascontiguousarray(mask[i_layer]) #如果不是C连续的内存,必须强制转换