深度学习:tf读取图片组成dataset形式

from glob import glob 
path = glob('./data/potato_data/*/*') # 所有的图片路径
label = [i.split('\\')[1] for i in path] # 所有图片对应的标签
label_dict = {'Early_blight':0, 'Late_blight':1, 'healthy':2}
label = [label_dict[i] for i in label ] # 把字符标签转成数值
# 通过构建DataSET的方式读取数据
train = tf.data.Dataset.from_tensor_slices( (path, label) )
for i,j in train:
    print(i,j)
    break
from tensorflow.io import read_file
def process_image(fpath, label):
    img = read_file(fpath)#编码后的数据
    img = tf.image.decode_png(img)/255 # 解码成图像数组
    img = tf.image.resize(img, [256,256]) # 所有图片大小统一
    label = tf.one_hot(label, depth=3) # 独热编码
    return img,label

# 通过映射,对x,y做处理
train = train.map(process_image)
for i,j in train:
    print(i,j)
    break

tarin = train.shuffle(10000) # 打乱数据
train = tarin.batch(32) # 给每个数据加批次
train.cache()  # 数据缓存
train.prefetch(buffer_size=tf.data.AUTOTUNE) # 预取数,增加资源使用效率
# 划分数据
num = tf.data.experimental.cardinality(train) # 所有批次
valdb = train.take(num//20) # 取3个批次,3
traindb = train.skip(num//20) # 跳过3个批次.65

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值