美文网首页Python数据操作
Python三维矩阵size操作

Python三维矩阵size操作

作者: chunleiml | 来源:发表于2017-11-14 17:06 被阅读16次

深度学习任务中,用于训练的数据需要大小一样,但现实使用的数据往往有大小的差异,有时大小一样的数据进行插值操作后大小也会不一样,根据任务需要确定合适的size后,把所有用于训练的数据切成相同size是模型开始训练前很重要的一步,由于训练的image,label,测试的image,label都需要进行相同的操作,因此我们把这个功能封装成一个函数,需要的时候调用就可以。

def segment(imgs,pixel):
    #根据任务和模型的需要设置image_size的大小
    image_size = 184
    z, x, y = np.shape(imgs)
    judge = sum([x > image_size, y > image_size])        
    for i, data in enumerate(imgs):
        if judge == 2 :
            data = data [int((x-image_size)/2+pixel):int((x+image_size)/2+pixel), int((y-image_size)/2):int((y+image_size)/2)]
            
        if judge == 0:
            image_new = -np.min(image_std)*np.ones([image_size, image_size], dtype = np.int32)
            image_new[int((image_size-x)/2):int((image_size-x)/2)+x, int((image_size-y)/2):int((image_size-y)/2)+y] = data 
            data = image_new
            
        if judge == 1:
            ValueError('输入数据的x,y大小不一样')
        if i == 0:
            imgs = np.reshape(image_std, [1,image_size,image_size])
        else:
            imgs = np.concatenate((imgs, np.reshape(image_std, [1,image_size,image_size])), axis = 0)   
    return imgs

pixel参数在需要数据增强的时候可以用到,给pixel设置一个值可以实现所切区域在x,y轴的上下移动操作,可以使训练数据瞬间增加几倍。

相关文章

网友评论

  • 编号783827:x,y大小不一样就不能剪裁了吗:smirk:
    chunleiml:@编号783827 x,y大小不一样也是可以裁剪的,只不过这个程序不太合适:blush: ,得改动一下的

本文标题:Python三维矩阵size操作

本文链接:https://www.haomeiwen.com/subject/ymefvxtx.html