吴恩达预处理

详细代码见这里
0.导入相应的包

import os
import tensorflow as tf
import numpy as np
from PIL import Image

1.处理标签
1.os.listdir(file_dir)函数获取文件路径里面的所有文件目录,并返回为一个列表
2.label_list[0:1200:1]切片操作,获取前1200个索引
3.返回一个数组

def get_labels(file_dir):
    label_cats = []
    label_dogs = []
    # 载入数据路径并写入标签值
    m=os.listdir(file_dir)
    #n=len(m)
    for file in m:
        name = file.split(sep='.')
        # name的形式为['dog', '9981', 'jpg']
        # os.listdir将名字转换为列表表达
        if name[0] == 'cat':
            # 注意文件路径和名字之间要加分隔符,不然后面查找图片会提示找不到图片
            # 或者在后面传路径的时候末尾加两//  'D:/Python/neural network/Cats_vs_Dogs/data/train//'
            label_cats.append(0)
        else:
            #dogs.append(file_dir + file)
            label_dogs.append(1)
            # 猫为0,狗为1
    # 打乱文件顺序
    label_list = np.hstack((label_cats, label_dogs))
    # np.hstack()方法将猫和狗图片和标签整合到一起,标签也整合到一起
    temp = np.array([label_list])
    temp = temp.transpose()  # 转置
    # 将其转换为10行1列,第一列是label_list的数据
    label_list = list(temp[:, 0])  # 取所有行的第1列数据,并转换为int
    label_list = [int(i) for i in label_list]
    label_list=label_list[0:1200:1]
    label_list=np.array(label_list)
    label_list=label_list.reshape((1,1200))
    #label_list = label_list.reshape((2000, 1))
    #print(label_list)
    return  label_list

2.处理图片
1.os.path.join(test, str(file[i]))获取图片路径
2.Image.open(img_dir)里面的路径必须为“”类型的
3.image.resize([208, 208])将图片裁剪为(208*208)大小的

def get_image(test, image_w, image_h):
    image_list=[]
    file = os.listdir(test)
    n=len(file)
    #print(str(image[0]))
    for i in range(0,1200):
        img_dir = os.path.join(test, str(file[i]))
        image = Image.open(img_dir)
        image = image.resize([208, 208])
        image = np.array(image)
        image_list.append(image)
    image=np.array(image_list)
    #print(image.shape)
    return image
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值