是否可以通过反向传播在单独的文件夹中分离训练和测试数据?

时间:2019-07-28 22:25:26

标签: keras training-data

我试图用喀拉拉邦制造一台机器,以对图像中的猫狗进行调和,该图像的开头是我自己选择的一小部分训练,然后是剩下的所有数据的测试数据。 在每次训练数据之后,机器将获得测试中的最佳数据并通过训练。避免使用已经训练好的数据。

我从具有25000张猫狗图像的数据集中读取图像进行分类,调整大小并将数据放置在机器上,但它获取了全部数据并放在“黑匣子”中。

import numpy as np

import matplotlib.pyplot as plt

import os

import cv2

from tqdm import tqdm

import pandas as pd

from keras.utils import np_utils

DATADIR = "/home/reinaldo/Documentos/PetImages/database"

CATEGORIES = ["Dog", "Cat"]

IMG_SIZE = 100

new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE)) plt.imshow(new_array, cmap='gray') plt.show()

training_data = []

def create_training_data(): for category in CATEGORIES: # do dogs and cats

path = os.path.join(DATADIR,category) # create path to dogs and cats' ``` class_num = CATEGORIES.index(category) # get the classification (0 or a 1). 0=dog 1=cat

```for tqdm(os.listdir(path))中的img:#遍历每只猫和狗的图像 ```` try: img_array = cv2.imread(os.path.join(path,img) ,cv2.IMREAD_GRAYSCALE) # convert to array` new_array = cv2.resize(img_array,(IMG_SIZE,IMG_SIZE))#调整大小以规范化数据大小 ````` training_data.append([new_array, class_num]) # add this to our training_data ````例外,例如e:#是为了保持输出整洁... ````` pass

create_training_data()

import random

random.shuffle(training_data)

for features,label in training_data: X.append(features) y.append(label)

print(X[0].reshape(-1, IMG_SIZE, IMG_SIZE, 1))

X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)

X = X/255.0

model = Sequential()

model.add(Conv2D(64, (3, 3), input_shape=X.shape[1:])) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors

model.add(Dense(64))

model.add(Dense(2)) model.add(Activation('softmax')) keras.metrics.top_k_categorical_accuracy(y,y_pred, k=5)

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['categorical_accuracy'])

model.fit(X, y, batch_size=32, epochs=10, validation_split=0.3)

我需要将训练数据和测试数据与文件夹分开,以便将训练后的数据和剩余数据保存在文件夹中。但是数据全部传递给了喀拉拉邦人。

0 个答案:

没有答案