Я пытаюсь загрузить набор данных изображений в тензорный поток, но у меня возникла проблема с его правильной загрузкой.На самом деле у меня есть папка с именем PetImages на диске C, которая содержит две папки с именами cat и dog.Каждая папка содержит больше 12450 изображений, таким образом, в общей сложности это 24500 плюс изображения.Я загружаю их со следующим кодом:
import numpy as np
import matplotlib.pyplot as plt
import os
import cv2
DATADIR = "C:\Datasets\PetImages"
CATEGORIES = ["Dog","Cat"]
for the category in CATEGORIES:
path = os.path.join(DATADIR, category)
for img in os.listdir(path):
img_array = cv2.imread(os.path.join(path,img), cv2.IMREAD_GRAYSCALE)
plt.imshow(img_array, cmap="gray")
plt.show()
break
break
Результат кода выглядит совершенно нормально, и он показывает первое изображение папки.Затем я преобразую форму всего массива в желаемую частоту пикселей с помощью следующего кода:
IMG_SIZE=50
new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
plt.imshow(new_array, cmap = "gray")
plt.show()
Эта часть также хороша, но затем я хочу смешать (перемешать) изображения, чтобы я мог озадачить системуи проверьте точность таким способом, но проблема в том, что он показывает только 12450 изображения, перерисованные после этого кода:
training_data = []
def create_training_data():
for category in CATEGORIES:
path = os.path.join(DATADIR, category)
class_num = CATEGORIES.index(category)
for img in os.listdir(path):
try:
img_array = cv2.imread(os.path.join(path,img),
cv2.IMREAD_GRAYSCALE)
new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
training_data.append([new_array, class_num])
except Exception as e:
pass
create_training_data()
print(len(training_data)
Тогда при использовании случайного числа я не получаю успех, чтобы перетасовать изображения изобе папки, он показывает только значения одной папки.
import random
random.shuffle(training_data)
for the sample in training_data[:10]:
print(sample[1])
Но мой результат - 1 1 1 1 1 вместо случайно сгенерированного как 0 1 0 1 0 0 0 1 1 этот стиль, я имею в виду непредсказуемый, следующий будет 1 или 0 .
Ваша помощь будет ценной для меня.Заранее спасибо