检查输入时出错:预期flatten_1_input具有3维,但数组的形状为(28,28)

问题描述 投票:0回答:1

这是代码:

image = cv2.imread('MNIST_IMAGE.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
data = asarray(gray)
data=data/255.0
predictions=model.predict(data)

这是错误,我得到:

ValueError Traceback(最近的呼叫最后)3个数据= asarray(灰色)4个数据=数据/255.0----> 5个预测= model.predict(数据)

〜\ Anaconda3 \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training.py在预测(自我,x,batch_size,详细,步骤,回调,max_queue_size,工作者,use_multiprocessing)1011max_queue_size = max_queue_size,1012个工作人员=工人,-> 1013 use_multiprocessing = use_multiprocessing)1014 1015 def reset_metrics(self):

〜\ Anaconda3 \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training_v2.py在预测(自我,模型,x,batch_size,详细,步骤,回调,max_queue_size,workers,use_multiprocessing,** kwargs)496模型,ModeKeys.PREDICT,x = x,batch_size = batch_size,详细=详细,497个步骤=步骤,回调=回调,max_queue_size = max_queue_size,-> 498个worker = workers,use_multiprocessing = use_multiprocessing,** kwargs)499500

〜\ Anaconda3 \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training_v2.py在_model_iteration中(自我,模型,模式,x,y,batch_size,冗长,sample_weight,步骤,回调,max_queue_size,工作者,use_multiprocessing,** kwargs)424 max_queue_size = max_queue_size,425名工人=工人,-> 426 use_multiprocessing = use_multiprocessing)427 total_samples = _get_total_number_of_samples个(适配器)428 use_sample = total_samples不是None

〜\ Anaconda3 \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training_v2.py在_process_inputs中(模型,模式,x,y,batch_size,时期,sample_weights,class_weights,shuffle,steps,distribution_strategy,max_queue_size,工作者,use_multiprocessing)644 standardize_function =无第645章-> 646 x,y,sample_weight = sample_weights)647 elif adapter_cls是data_adapter.ListsOfScalarsDataAdapter:648 standardize_function = standardize

〜\ Anaconda3 \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training.py在_standardize_user_data(self,x,y,sample_weight,class_weight,batch_size,check_steps,steps_name,steps,validation_split,shuffle,2381 is_dataset = is_dataset,第2382章死了-> 2383 batch_size =批量大小)2384 2385 def _standardize_tensors(self,x,y,sample_weight,run_eagerly,dict_inputs,

〜\ Anaconda3 \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training.py在_standardize_tensors(self,x,y,sample_weight,run_eagerly,dict_inputs,is_dataset,class_weight,batch_size)2408feed_input_shapes,2409 check_batch_axis = False,#不强制批量大小。-> 2410 exception_prefix ='input')2411 2412#获取输入数据的类型规范,并在必要时进行清理。

〜\ Anaconda3 \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training_utils.py在standardize_input_data(数据,名称,形状,check_batch_axis,exception_prefix)571':预期的'+名称[i] +'具有'+572 str(len(shape))+'尺寸,但得到数组'-> 573'具有形状'+ str(data_shape))574(如果不是check_batch_axis):575 data_shape = data_shape [1:]

ValueError:检查输入时出错:预期输入flatten_1_input为有3个维度,但数组的形状为(28,28)

numpy image-processing keras neural-network mnist
1个回答
1
投票

添加批次尺寸:

predictions = model.predict(data[None, ...])

或类似这样(两者均相等):

predictions = model.predict(np.expand_dims(data, 0))
© www.soinside.com 2019 - 2024. All rights reserved.