tensorflow - 如何修复 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)
我该如何解决这个错误?
解决方案
推荐阅读
- reactjs - React JS 中的状态更新无法正常工作
- python - 有没有办法不在 TeleBot 上使用内联键盘发送消息内容?
- python - 我的代码中的 .count() 方法是否有合适的替代品?
- python - 如何更改熊猫 df 的某些值
- rust - 尝试访问内部值时,Arc Mutex 不满足调试特征
- python - 有没有办法在不牺牲列名和列顺序的情况下将所有 nan 值移动到我的 pandas 数据框的底部?
- flutter - 以数组形式发布数据请求
- javascript - 为什么`this`不与function.apply一起传递?
- kotlin - 如何使用 kotlin 协程优化这个用 Anko 编写的异步代码
- python - 如何在主对象上使用 __dict__ 获取子对象的字典?