李宏毅的机器学习作业3

这是一个图像识别任务,使用PyTorch实现卷积神经网络(CNN)对食物图片进行分类。数据处理包括读取文件、提取标签和数据增强。模型结构相对简单,利用Dataset和DataLoader组织数据,通过池化和卷积操作进行特征提取。
摘要由CSDN通过智能技术生成

李宏毅的机器学习作业3


作业所需数据 akti
作业参考答案

作业要求

本次作业是一个图像识别任务,要将所给的食物图片分类,共有十一种,图片对应的食物编号在图片名字的前缀上。本此作业需要用到的是卷积神经网络cnn,以pytorch实现,由于任务较简单,所以使用的网络结构并不复杂。

数据处理

先总结一下对数据的处理步骤。

读取文件,提取标签

def readfile(path, label):
    # label 是一個 boolean variable,代表需不需要回傳 y 值
    image_dir = sorted(os.listdir(path))
    x = np.zeros((len(image_dir), 128, 128, 3), dtype=np.uint8)
    y = np.zeros((len(image_dir)), dtype=np.uint8)
    for i, file in enumerate(image_dir):
        img = cv2.imread(os.path.join(path, file))
        x[i, :, :] = cv2.resize(img,(128, 128))
        if label:
          y[i] = int(file.split("_")[0])
    if label:
      return x, y
    else:
      return x

数据增强,对图片随机翻转,旋转。

train_transform = transforms.Compose([
    transforms.ToPILImage(),
    transforms.RandomHorizontalFlip(), #隨機將圖片水平翻轉
    transforms.RandomRotation(15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值