keras训练自己数据-------goodlenet模型

首先要把对自己的数据进行处理:

文件名为load_img.py

# -*- coding: utf-8 -*-
import numpy as np
import os
from PIL import Image
def load_data(file_dir,nums):
    j = 0
    i = 0
    A0 = 0
    A1 = 0
    A2 = 0
    A3 = 0
    # 从data里面选择前number张作为总数据
    number = nums
    # 分为4类,从每个类的数量里面取前validation_split * number个样本
    number1 = int(nums/4)
    data = np.empty((number, 224, 224, 3), dtype="float32")
    label = np.empty((number,), dtype="uint8")

    for file in os.listdir(file_dir):
        for file1 in os.listdir(file_dir + '/' + file):
            for file2 in os.listdir(file_dir + '/' + file + '/' + file1):
                for file3 in os.listdir(file_dir + '/' + file + '/' + file1 + '/' + file2):
                    dir = file_dir + '/' + file + '/' + file1 + '/' + file2 + '/' + file3

                    if 'C.jpg' in file3:
                        # print(Image.open(dir))
                        try:
                            image = Image.open(dir)
                        except IOError:
                            print(dir)
                            print ("Error: 没有找到文件或读取文件失败")
                        else:
                            if i == number:
                                j = j + 1
                            else:
                                if A0 == number1:
                                    j = j + 1
                                else:

                                    if image.mode == 'RGB':
                                        # print(dir)
                                        img = Image.open(dir)
                                        # img= img.convert('L')   # 3通道图转化为单通道图
                                        img = img.resize((224, 224), Image.ANTIALIAS)

                                        arr = np.asarray(img, dtype="float32")

                                        data[i, :, :, :] = arr
                                        label[i] = int(0)
                                        A0 = A0 + 1
                                        i = i + 1
                                        if i % 500 == 0:
                                            print(i)
                                    else:
                                        j = j + 1
                    elif 'CB.jpg' in file3:
                        # print(Image.open(dir))
                        try:
                            image = Image.open(dir)
                        except IOError:
                            print(dir)
                            print("Error: 没有找到文件或读取文件失败")
                        else:
                            if i == number:
                                j = j + 1
                            else:
                                if A3 == number1:
                                    j = j + 1
                                else:

                                    if image.mode == 'RGB':
                                        # print(dir)
                                        img = Image.open(dir)
                                        # img = img.convert('L')  # 3通道图转化为单通道图
                                        img = img.resize((224, 224), Image.ANTIALIAS)

                                        arr = np.asarray(img, dtype="float32")

                                        data[i, :, :, :] = arr
                                        label[i] = int(3)
                                        A3 = A3 + 1
                                        i = i + 1
                                        if i % 500 == 0:
                                            print(i)
                                    else:
                                        j = j + 1
                    elif 'CA.jpg' in file3:
                        # print(Image.open(dir))
                        try:
                            image = Image.open(dir)
                        except IOError:
                            print(dir)
                            print ("Error: 没有找到文件或读取文件失败")
                        else:
                            if i == number:
                                j = j + 1
                            else:
                                if A1 == number1:
                                    j = j + 1
                                else:
                                    if image.mode == 'RGB':
                                        # print(dir)
                                        img = Image.open(dir)
                                        # img = img.convert('L')  # 3通道图转化为单通道图
                                        img = img.resize((224, 224), Image.ANTIALIAS)

                                        arr = np.asarray(img, dtype="float32")

                                        data[i, :, :, :] = arr
                                        label[i] = int(1)
                                        A1 = A1 + 1
                                        i = i + 1
                                        if i % 500 == 0:
                                            print(i)
                                    else:
                                        j = j + 1
                    elif ('C.jpg' not in file3) and ('CA.jpg' not in file3) and ('CB.jpg' not in file3) and (
                            '.jpg' in file3):
                        # print(Image.open(dir))
                        try:
                            image = Image.open(dir)
                        except IOError:
                            print(dir)
                            print ("Error: 没有找到文件或读取文件失败")
                        else:
                            if i == number:
                                j = j + 1
                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值