__author__ = 'Administrator'
#导入模块
import tensorflow as tf
import numpy as np
import os
import glob
from sklearn.utils import shuffle
import cv2
import pandas as pd
import matplotlib.pyplot as plt
#读取数据集
def load_train(train_path,img_size,classes):
images=[]
labels=[]
img_names=[]
cls=[]
print("读取训练图片...")
for fields in classes:
index=classes.index(fields)
print("Now going to read {} files (Index:{})".format(fields,index))
path=os.path.join(train_path,fields,'*g') #os.path.join()函数:连接两个或更多的路径名组件
#1.如果各组件名首字母不包含’/’,则函数会自动加上
#2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
#3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
files=glob.glob(path)
for fl in files:
image=cv2.imread(fl)
image=cv2.resize(image,(img_size,img_size),0,0,cv2.INTER_LINEAR)
image=image.astype(np.float32)
image=np.multiply(image,1.0/255.0)
images.append(image)
label=np.zeros(len(classes))
label[index]=1.0
labels.append(label)
flbase=os.path.basename(fl)
img_names.append(flbase)
cls.append(fields)
images=np.array(images)
labels=np.array(labels)
img_names=np.array(img_names)
cls=np.array(cls)
return images,labels,img_names,cls
class DataSet(object):
def __init__(self,images,labels,img_names,cls):
self._num_examples = images.shape[0]
self._images=images
self._labels=labels
self._img_names=img_names
self._cls=cls
self._epochs_done=0
self._index_in_epoch=0
def images(self):
return self._images
def labels(self):
return self._labels
def img_names(self):
return self._img_names
def cls(self):
return self._cls
d