首页 > 解决方案 > 如何修复 keras 中的重塑和分类更改错误?

问题描述

我使用keras和tensorflow和GTSRB数据集或交通标志检测。我的训练数据如下:float32 [34979,32,32,3],我的测试数据如下:float32 [12630,32,32,3]。数据也是照片和泡菜的形式。当我添加以下三行代码时,我收到以下错误:

y_train = np_utils.to_categorical(y_train, nb_classes)
y_test = np_utils.to_categorical(y_test, nb_classes)
y_validation = np_utils.to_categorical(y_validation, nb_classes)

错误如下:无法将大小为 106902528 的数组重塑为形状 (34799,32,32,1)

代码是这样的:

from __future__ import print_function
import numpy as np
import cv2
from tqdm import tqdm
from pylab import text
import csv
from PIL import Image
from skimage.transform import resize
import matplotlib.pyplot as plt
import pickle
import DataLoad
from tensorflow.keras.layers import Dense, Dropout, Flatten, Activation
from keras.utils import np_utils
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten
from tensorflow.keras.utils import to_categorical


batch_size = 200
nb_classes = 43
Nb_epoch = 100

# input image dimensions
img_rows, img_cols = 32, 32

# number of convolutional filters to use
nb_filters = 32

# size of pooling area for max pooling
nb_pool = 2

# convolution kernel size
nb_conv = 3

# # Loading rgb data from training dataset
x_train, y_train, s_train, c_train =DataLoad.load_rgb_data('train.pickle')

# # Loading rgb data from test dataset
x_test, y_test, s_test, c_test = DataLoad.load_rgb_data('test.pickle')

# Loading rgb data from validation dataset
x_validation, y_validation, s_validation, c_validation = DataLoad.load_rgb_data('valid.pickle')

# # Getting texts for every class
label_list = DataLoad.label_text('label_names.csv')


x_train = x_train.reshape(x_train.shape[0], img_cols, img_rows, 1)
x_test = x_test.reshape(x_test.shape[0], img_cols, img_rows, 1)
x_validation = x_validation.reshape(x_validation.shape[0], img_cols, img_rows, 1)


x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_validation = x_validation.astype('float32')
x_train /= 255
x_test /= 255
x_validation /= 255



# convert class vectors to binary class matrices
y_train = np_utils.to_categorical(y_train, nb_classes)
y_test = np_utils.to_categorical(y_test, nb_classes)
y_validation = np_utils.to_categorical(y_validation, nb_classes)

我该如何解决这个错误?

标签: tensorflowkerasreshapecategorical-data

解决方案


推荐阅读