pytorch初步学习(一):数据读取


最近从tensorflow转向pytorch,感受到了动态调试的方便,也感受到了一些地方的不同。

所有实验都是基于uint16类型的单通道灰度图片。

一开始尝试用opencv中的cv.imread读取图片,发现会默认读8位数据。。。后来还是改用了skimage读取图片。一个小坑。

在tensorflow中:

利用append得到数组x_test  [batchsize,width,hight]

x_test = x_test[:, :, :, np.newaxis]
# 占位符
x=tf.placeholder(tf.float32, shape=[None, w, h, 1], name='x')
# 送入网络tensor维度依次为:batchsize,width,hight,channel

在pytorch中:

arr = np.asarray(img, dtype="float32")
data_x[i, :, :, :] = arr
i += 1
data_y.append(int(item[0]))
data_x = torch.from_numpy(data_x)
data_y = torch.from_numpy(data_y)
dataset = dataf.TensorDataset(data_x, data_y)
loader = dataf.DataLoader(dataset, batch_size=batchsize, shuffle=True)
# 送入网络的tensor维度依次为:batchsize,channel, width,hight

在tensorflow中需要自己写一个minibatch函数控制训练,在pytorch中可以调用dataloader将数据变成torch需要的tensor形式,并且不需要额外写minibatch函数。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM