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

时间:2020-03-20 08:57:15

标签: numpy image-processing keras neural-network mnist

这是代码:

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跟踪(最近一次调用 最后) 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)1011
max_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) 499 500

〜\ 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 = batch_size)2384 2385 def _standardize_tensors(自我,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)2408
feed_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)

1 个答案:

答案 0 :(得分:1)

添加批次尺寸:

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

或者这样(两者都是等效的):

predictions = model.predict(np.expand_dims(data, 0))